javascript - 比较两种 JavaScript 对象算法

标签 javascript

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/

相关文章:

javascript - 响应式网页设计的 DOM 操作性能

javascript - Internet Explorer 10 : $(window). 加载时不等待自定义字体。

javascript - 为什么子元素悬停时会触发 mouseout?

javascript - 使用 javascript 在循环中绘制 SVG 折线

javascript - orderBy 无法正常工作

javascript - javascript 的 vendor 前缀

javascript - 如何在 <div> HERE <div/> 中循环

javascript - 链式 Q Promise 序列不起作用

javascript - 如果源 json 更新(添加或删除项目),则动态更新 D3 Sunburst

javascript - 是否有可能使用 oAuth 制作一个 100% 基于浏览器的 javascript 推特客户端(根本没有后端)?