ES6 展开运算符将数组转换为对象:实例与解析
可以使用 ES6 的展开运算符和对象字面量的方式将 arr 数组转换成对象:
const arr = [
{
'label': 'SOP+1',
'name': 'sop1',
'sop1': '1'
},
{
'label': 'SOP+2',
'name': 'sop2',
'sop2': '2'
},
{
'label': 'SOP+3',
'name': 'sop3',
'sop3': '3'
},
{
'label': 'SOP+4',
'name': 'sop4',
'sop4': '45'
},
{
'label': 'SOP+5',
'name': 'sop5',
'sop5': '5'
}
];
const sopNum = {
sop: '666',
...Object.fromEntries(arr.map(({ name, [name]: value }) => [name, value]))
};
console.log(sopNum);
输出结果为:
{
sop: '666',
sop1: '1',
sop2: '2',
sop3: '3',
sop4: '45',
sop5: '5'
}
这样就将 arr 数组转换成了 sopNum 对象,并且将 sop 属性的值设置为 666。
解释
Object.fromEntries(): 将一个可迭代对象(例如数组)转换为一个新的对象,该对象中的键值对是从可迭代对象中获取的。arr.map(): 对arr数组中的每个元素进行处理,并返回一个新的数组。({ name, [name]: value }) => [name, value]: 使用对象解构语法从每个数组元素中获取name和value,并返回一个包含name和value的数组,这个数组将作为Object.fromEntries()的输入。...Object.fromEntries(...): 使用展开运算符将Object.fromEntries()返回的对象中的键值对合并到sopNum对象中。
总结
ES6 的展开运算符和对象字面量提供了强大的功能,可以方便地将数组转换为对象,并进行其他操作。这在处理数据结构时非常有用,可以提高代码的可读性和效率。
相关阅读
原文地址: https://www.cveoy.top/t/topic/qDtg 著作权归作者所有。请勿转载和采集!