如何合并JavaScript对象?将items数组并入指定对象的amount字段后
嘿,这事儿其实挺简单的,咱们有好几种实用的方法能把这两个对象合并成你想要的结构,我给你列几个常用的实现方式:
方法1:对象解构赋值(最简洁)
这是ES6之后最常用的方式,用扩展运算符把第一个对象的所有属性拆出来,再加上第二个对象的items属性,最后包进数组就行:
const originalData = [ { employeeName: 'វី រឿន', docStudyFee: 415.24, docBusFee: 50, docSaleFee: 10, amount: 475.24 }, { items: [ {}, {}, {} ] } // 这里把[Object]换成空对象方便演示 ]; const mergedResult = [ { ...originalData[0], items: originalData[1].items } ]; console.log(mergedResult);
...originalData[0]会把第一个对象的所有属性都复制到新对象里,之后我们再手动添加items属性,直接取第二个对象的对应值,最后把这个新对象放进数组,就完美得到你要的结果了。
方法2:使用Object.assign()
这个方法是专门用来合并对象的,我们可以创建一个空对象作为目标,依次把第一个对象的属性和items属性合并进去,避免修改原数据:
const originalData = [ { employeeName: 'វី រឿន', docStudyFee: 415.24, docBusFee: 50, docSaleFee: 10, amount: 475.24 }, { items: [ {}, {}, {} ] } ]; const mergedObj = Object.assign({}, originalData[0], { items: originalData[1].items }); const mergedResult = [mergedObj]; console.log(mergedResult);
Object.assign({}, ...)会生成一个全新的对象,先复制第一个对象的所有属性,再把包含items的对象合并进去,最后把这个合并后的对象放进数组就搞定了。
方法3:手动创建新对象(最直观)
如果你刚接触JS,想更清晰地理解每一步,也可以手动逐个赋值属性,虽然麻烦点,但逻辑一目了然:
const originalData = [ { employeeName: 'វី រឿន', docStudyFee: 415.24, docBusFee: 50, docSaleFee: 10, amount: 475.24 }, { items: [ {}, {}, {} ] } ]; const mergedResult = [ { employeeName: originalData[0].employeeName, docStudyFee: originalData[0].docStudyFee, docBusFee: originalData[0].docBusFee, docSaleFee: originalData[0].docSaleFee, amount: originalData[0].amount, items: originalData[1].items } ]; console.log(mergedResult);
这种方式就是把第一个对象的每个属性都手动写到新对象里,再加上items属性,完全不用担心搞混逻辑。
内容的提问来源于stack exchange,提问作者phan chanra
相关产品推荐
相关产品推荐

