JavaScript,如何让对象转换为对象数组呢
const obj = {
a:'10',
b:'20',
c:'30'
}
//使用Object.entries加上map
const newObj = Object.entries(obj).map(([key,value])=>{
return {
name:key,
age:value
}
})
//上述的写法其实也可以这么写
const newObj = Object.entries(obj).map((item) => {
// item 是 ['a', '10']、['b', '20'] 等
return {
name: item[0], // 键
age: item[1] // 值
}
})
解析这段代码:
Object.entries(obj)
// 返回:[['a', '10'], ['b', '20'], ['c', '30']]
Object.entries使数组变为二维数组,每个子数组包含 [键, 值]
([key, value])是数组解构的语法;
就是告诉 JavaScript:"把传进来的数组的第一个元素叫 key,第二个元素叫 value"。这种写法更简洁一些;
完整执行流程为:
// 第一次循环:item = ['a', '10']
// [key, value] = ['a', '10']
// key = 'a', value = '10'
// 返回 { name: 'a', age: '10' }
// 第二次循环:item = ['b', '20']
// key = 'b', value = '20'
// 返回 { name: 'b', age: '20' }
// 第三次循环:item = ['c', '30']
// key = 'c', value = '30'
// 返回 { name: 'c', age: '30' }

浙公网安备 33010602011771号