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

如何在给定示例的对象中添加值为指定字符串的属性

实现方案

你需要的是给对象中list数组内的元素新增type属性,固定值为'created',根据是否需要保留原始数据,可选择以下两种实现:

直接修改原数据(性能最优,无额外内存开销)

如果不需要保留原始数据的状态,直接遍历数组给元素追加属性即可,时间复杂度O(n),没有额外性能损耗:

// 原始数据
const data = {
    id: "222",
    list: [
        {
            name: "Tony"
        }
    ]
};

// 遍历list数组追加属性
data.list.forEach(item => {
    item.type = 'created';
});

执行后data的结构和你预期的结果完全一致。

生成新数据(不修改原对象,避免副作用)

如果后续逻辑还要用到原始数据、不希望原对象被改动,可以先对原数据做深拷贝,再给拷贝后的对象追加属性:

// 现代环境(Chrome 98+、Node.js 17+)推荐用内置API做深拷贝
const newData = structuredClone(data);
newData.list.forEach(item => {
    item.type = 'created';
});

// 低版本兼容方案:仅适用于数据全是JSON支持的类型(无函数、Symbol、循环引用)的场景
const compatibleNewData = JSON.parse(JSON.stringify(data));
compatibleNewData.list.forEach(item => {
    item.type = 'created';
});

边界情况兼容

如果list可能为空、或者存在非对象元素,可以加可选链和类型判断避免运行时报错:

data.list?.forEach(item => {
    if (item && typeof item === 'object') {
        item.type = 'created';
    }
});

内容的提问来源于stack exchange,提问作者user18241178

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 08:39:29