2015-05-08 3 views
0

У меня есть следующие два массива:Сравнить два массива и возвращать уникальные значения

array1 = [{'itemCode':'a'}, {'itemCode':'b'}, {'itemCode':'c'}]; 
array2 = [{'itemCode':'a'}, {'itemCode':'b'}, {'itemCode':'d'}]; 

я ищу способ нарезать array2 из массива 1 и вернуть значение «F».

Кто-нибудь знает, как быстро это сделать в JavaScript, я полностью в тупике.

Я пробовал _difference и _unique от подчеркивания, но это не кажется правильным решением.

var diffArray = _.difference(array1, array2); 

Любая помощь была бы принята с благодарностью!

+3

Я не вижу «F значение» в массивах. –

+0

http://stackoverflow.com/questions/13147278/using-underscores-difference-method-on-objects – mrak

+0

Значение F? Где? –

ответ

0

Get the unique values from two arrays and put them in another array - Jquery Я думаю, что это будет ответить на ваш вопрос

var unique = []; 
for(var i = 0; i < array1.length; i++){ 
    var found = false; 
    for(var j = 0; array2.length; j++){ 
    if(array1[i].itemCode == array2[j].itemCode){ 
     found = true; 
     break; 
    } 
    } 
    if(found == false){ 
    unique.push(array1[i]); 
    } 
} 
+0

Я не думаю, что 'indexOf()' будет работать, когда элементы являются такими объектами. Он не рекурсивно сравнивает объекты. – Barmar

+0

Да, вы правы, я упустил вид данных. Но это как-то продемонстрировать, как это делается. Я не знаком с javascript – ADB

+0

Это действительно не демонстрирует, как это делается, потому что вам нужно делать что-то совершенно другое, если 'indexOf()' не может их сопоставить. – Barmar

Смежные вопросы