Вопрос по arrays, javascript – Как найти элементы в массиве, которых нет в массиве1?

0

Error: User Rate Limit Exceeded

var a1 = [ { ID: 2, N:0 }, { ID: 1, N:0 } ];
var a2 = [ { ID: 1, N:0 }, { ID: 2, N:0 }, { ID: 3, N:0 } ];

Мне нужно, чтобы получить все элементы, которые наa2Error: User Rate Limit Exceededa1, Элемент здесь отличается от другого только свойствомIDдругие свойства следует игнорировать. И я не могу гарантировать порядок элементов в массивах. Значение результата для этого примера должно быть:

var result = [ { ID: 3, N:0 } ]; // result for the example above

Как я могу сделать это эффективным способом? (Я буду сравнивать массивы от 500 до 5000 длины)

Ваш Ответ

2   ответа
0

Error: User Rate Limit Exceeded

Error: User Rate Limit Exceeded

Error: User Rate Limit Exceeded

Error: User Rate Limit Exceeded

var a1 = [ { ID: 2, N:0 }, { ID: 1, N:0 } ];
var a2 = [ { ID: 1, N:0 }, { ID: 2, N:0 }, { ID: 3, N:0 } ];

var from, to;
if(a1 > a2){
    from = a1
    to = a2
} else {
    from = a2
    to = a1
}

var a3 = _.filter(from, function(obj){
    var compare = _.find(to, function(obj2){ return obj.ID === obj2.ID });
    return compare === undefined
});
console.log(a3);

Error: User Rate Limit Exceeded

Error: User Rate Limit Exceeded

Error: User Rate Limit Exceeded

Error: User Rate Limit Exceeded
3

Error: User Rate Limit Exceeded

function findUniques(testItems, baseItems) {
    var index = {}, i;
    var result = [];

    // put baseItems id values into the index
    for (i = 0; i < baseItems.length; i++) {
        index[baseItems[i].ID] = true;
    }

    // now go through the testItems and collect the items in it 
    // that are not in the index
    for (i = 0; i < testItems.length; i++) {
        if (!(testItems[i].ID in index)) {
            result.push(testItems[i]);
        }
    }
    return(result);
}

var a1 = [ { ID: 2, N:0 }, { ID: 1, N:0 } ];
var a2 = [ { ID: 1, N:0 }, { ID: 2, N:0 }, { ID: 3, N:0 } ];

var result = findUniques(a2, a1);
// [{"ID":3,"N":0}]

Error: User Rate Limit ExceededError: User Rate Limit Exceeded

Похожие вопросы