检查对象数组中的重复条目并创建新对象

时间:2016-04-18 00:04:55

标签: javascript arrays lodash

我正在尝试通过创建一个新数组来合并对象数组中的重复条目。

我不知道如何在没有循环遍历新数组的情况下检查重复数据,然后在尝试推送内容时会让我感到困惑,因为它每次都为外部循环执行。

我该如何正确地做到这一点?

var arr=[0];
for (var k in data) {
    var name = data[k].name;
    var item = data[k];
    //check if already in array
    for (var l in arr){
        if (arr[l].name == name){
            arr[l].value = arr[l.value] + ';;' + item.value;
        } else {
            arr.push(item);
        }
    }
}

2 个答案:

答案 0 :(得分:1)

使用 Lodash

var arr = _.uniqBy(data, 'name');

答案 1 :(得分:0)

我不确定我是否正确回答你的问题,但你可以使用.indexOf()来解决这个问题。 indexOf返回数组中元素的位置,如果不存在则返回-1:http://www.w3schools.com/jsref/jsref_indexof_array.asp

list