如何遍历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
相关产品推荐
相关产品推荐

