可以使用 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。

解释

  1. Object.fromEntries(): 将一个可迭代对象(例如数组)转换为一个新的对象,该对象中的键值对是从可迭代对象中获取的。
  2. arr.map():arr 数组中的每个元素进行处理,并返回一个新的数组。
  3. ({ name, [name]: value }) => [name, value]: 使用对象解构语法从每个数组元素中获取 namevalue,并返回一个包含 namevalue 的数组,这个数组将作为 Object.fromEntries() 的输入。
  4. ...Object.fromEntries(...): 使用展开运算符将 Object.fromEntries() 返回的对象中的键值对合并到 sopNum 对象中。

总结

ES6 的展开运算符和对象字面量提供了强大的功能,可以方便地将数组转换为对象,并进行其他操作。这在处理数据结构时非常有用,可以提高代码的可读性和效率。

相关阅读

ES6 展开运算符将数组转换为对象:实例与解析

原文地址: https://www.cveoy.top/t/topic/qDtg 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录