super 简单的例子,
var beforeList = [{"name": "A"},{"name": "B"},{"name": "C"}]
var updateList = [{"name": "A"},{"name": "B"},{"name": "D"}]
我必须比较这两个,如果缺少数据,我必须将 updatelist
数据插入到列表之前。
所以我想要的结果是,
function someLogicHere(beforeList, updateList){
// some logic here
return afterList(i.e [{"name": "A"},{"name": "B"},{"name": "C"},{"name": "D"}] in here)
}
任何好的或很棒的库或插件都可以。
我自己用forEach
制作的,但它确实很糟糕。
最佳答案
这应该有效。
var afterList = beforeList.slice(0); //Clones the array
var elementPresent;
for (var i = 0; i < updateList.length; i++) {
elementPresent = false;
for (var j = 0; j < updateList.length; j++) {
if (updateList[i].name == afterList[j].name){
elementPresent = true;
break;
}
}
if(!elementPresent){
afterList.push({
"name": updateList[i].name
});
}
}
关于javascript - 比较两种 JavaScript 对象算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24997508/