对象中的key的值是数组类型的转换成字符串,反之处理成数组

99 阅读1分钟
  1. 对象中的key的值是数组类型的转换成字符串,并用特殊字符隔开。
let  data ={
    name:'linmuhan',
    age:'18',
    skill:['html','css','javascript','vue','react']
}
console.log(judgeString(data),'data')
function judgeString(object) {
    // 1.判断是否为对象
    if (typeof object === 'object') {
        for (const k in object) {
            const r = Object.prototype.toString.call(object[k])
            console.log(r,'rrrrrrrrr')
            if (r.slice(8, r.length - 1) === 'Array') {
                object[k] = object[k].join('@&*')
            }
        }
    }
    return object
}

运行效果:

[object String] rrrrrrrrr
[object String] rrrrrrrrr
[object Array] rrrrrrrrr
{
  name: 'linmuhan',
  age: '18',
  skill: 'html@&*css@&*javascript@&*vue@&*react'
} data
  1. 对象里面的字符串处理转成成数组
let stringData={
    name: 'linmuhan',
    age: '18',
    skill: 'html@&*css@&*javascript@&*vue@&*react'
}
console.log(judgeAttr(stringData),'string')
function  judgeAttr(object) {
    if (typeof object === 'object') {
        for (const k in object) {
            if (typeof object[k] === 'string' && object[k].indexOf('@&*') !== -1) {
                // object[k] = object[k].split('@&*').map(elem => Number(elem))
                object[k] = object[k].split('@&*')
            }
        }
    }
    return object
}

运行效果

{
  name: 'linmuhan',
  age: '18',
  skill: [ 'html', 'css', 'javascript', 'vue', 'react' ]
} string