【发布时间】:2017-07-27 19:52:38
【问题描述】:
这个函数返回两个对象之间的差异,我需要修改它以返回普通对象。任何帮助表示赞赏。
数组示例:
var array1 = [{
"Name": "Single",
"URL": "xxx",
"ID": 123
}, {
"Name": "Double",
"URL": "yyy",
"ID": 888
}, {
"Name": "Triple",
"URL": "zzz",
"ID": 567
}];
var arrar2 = [{
"Name": "Single",
"URL": "xxx",
"ID": 123
}, {
"Name": "Double",
"URL": "yyy",
"ID": 888
}, {
"Name": "index",
"URL": "zzz",
"ID": 567
}];
// expected result
var resultArray = [{
"Name": "Single",
"URL": "xxx",
"ID": 123
}, {
"Name": "Double",
"URL": "yyy",
"ID": 888
},
}];
当前代码:
function objDiff(array1, array2) {
var resultArray = []
array2.forEach(function(destObj) {
var check = array1.some(function(origObj) {
if (origObj.name == destObj.name) return true
})
if (!check) {
destObj.desc = 'missing in source'
resultArray.push(destObj)
}
})
array1.forEach(function(origObj) {
var check = array2.some(function(destObj) {
if (origObj.name == destObj.name) return true
})
if (!check) {
origObj.desc = 'missing in destination'
resultArray.push(origObj)
}
})
return resultArray
}
【问题讨论】:
-
还提供一些示例对象来测试它怎么样。
-
您需要说明您当前的思维过程是什么。我们需要知道您正在批判性地思考您的问题。在当前状态下,您将失去所有代表,因为这听起来像是“我必须修改此代码,但我不知道如何,请为我完成我的工作”。而不是“我对 x、y、z 很好奇,我尝试过 a、b 和 c”。
-
我添加了示例对象
标签: javascript jquery