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

如何遍历JavaScript对象检测变更并提取已修改项ID

对比JavaScript对象差异并收集修改项ID

要识别原对象 p 和修改后的副本 p2 中哪些元素被修改,只需遍历对象的键并逐一对比对应值,将有差异的键(ID)存入数组即可。

代码实现

首先定义原对象和修改后的对象:

var p = {
    "1": "value1",
    "2": "value2",
    "3": "value3"
};

var p2 = {
    "1": "changed",
    "2": "value2",
    "3": "changed"
};

然后编写对比逻辑:

const edited = [];

// 遍历原对象的所有键
for (const key in p) {
    // 对比原对象与副本对应键的值
    if (p[key] !== p2[key]) {
        // 将差异键转为数字后存入数组(若需字符串ID,直接push(key)即可)
        edited.push(Number(key));
    }
}

console.log(edited); // 输出结果: [1, 3]

补充说明

  • 上述代码适用于单层键值对对象,如果对象包含嵌套结构,需要编写递归对比逻辑来处理深层差异。
  • 若要同时检查新增或删除的键,可以额外遍历 p2 的键,判断是否存在于 p 中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 03:35:21