You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

合并数组对象中两个属性值并新增属性的实现方法

合并数组对象中两个属性值并新增属性的实现方法

看起来你想要给数组里的每个对象新增一个fullname属性,把name和name2的值拼接起来对吧?先说说你当前代码的问题:你用Object.values(arr[i]).push(...),这其实是把拼接后的字符串加到了对象值组成的临时数组里,而不是给原对象添加新属性,所以达不到预期效果。

下面给你两种常用的实现方式:

方法一:使用forEach修改原数组

如果你想直接修改原数组里的对象,可以这样写:

const arr = [{name:"test",name2:"ing"},{name:"desc",name2:"ription"}];

arr.forEach(ele => {
    // 直接给当前对象新增fullname属性,拼接name和name2
    ele.fullname = ele.name + ele.name2;
});

console.log(arr); // 就能得到你想要的结果

这种方式会直接修改原数组中的每个对象,适合不需要保留原数组的场景。

方法二:使用map返回新数组(更推荐)

如果你不想修改原数组,而是生成一个全新的数组,map方法会更合适——它不会改变原数组,而是返回处理后的新数组,更符合无副作用的编程理念:

const arr = [{name:"test",name2:"ing"},{name:"desc",name2:"ription"}];

const newArr = arr.map(ele => {
    // 解构原对象的所有属性,再新增fullname属性返回新对象
    return {
        ...ele,
        fullname: ele.name + ele.name2
    };
});

console.log(newArr); // 输出预期的新数组
console.log(arr); // 原数组保持不变

你之前的思路方向是对的,只是选错了操作对象,只要直接给每个元素添加属性就可以啦~

备注:内容来源于stack exchange,提问作者vinay kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 15:54:35