做个小记录:

1、首先准备好一个对象 和 一个空数组(用来接收转换后的数据)

let obj = {xd: "熊大",02: "熊二",03: "香香",04: "松鼠"}
let list  =[]
transformList() {
    // id 如果前面是数字 就会按照索引值数字来,如果不是就保持原样
    let key = Object.keys(this.obj) //取出当前对象的索引

    let values=Object.values(this.obj) //取出当前对象的值
    
    //将拿到的索引 跟 值 组到一起,返回数组对象
    let arrObj=key.map((item,index)=>{
        return{
            name:values[index],//values是一个数组,加index是为了拿到跟索引同个位置的值
            id:item
        }
    })
    this.list = arrObj
    console.log(this.list,"对象转成 数组对象");
},

2、也可,封装成一个公用的转换方法,把转换的数据传入,在需要使用的位置调用即可
如: this.dataTransform(this.obj)

dataTransform(obj) {
    let key = Object.keys(obj)
    let val = Object.values(obj)
    let data = key.map((item, index) => {
        return {
            name: val[index],
            id: item,
        }
    })
    return data
},

3、Object 类型的 key(索引)跟value(值) 交换位置

objKeyVal(obj) {
    for (let k in obj) {
        let value = obj[k] //将原来的value赋值给一个变量
        obj[value] = k // 为obj赋新key,不能直接使用obj = {obj[k] : k},会报语法错误
        delete obj[k] // 删除原来的属性
    }
    return obj
},
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐