Страницы

Поиск по вопросам

пятница, 2 ноября 2018 г.

Как сверить 2 массива и удалить одинаковые значения?

Предположим есть ассоциативный массив `
a = { "a": "17", "b": "1", "d": "3", "v": "10", "e": "4", "f": "9" }
и есть второй массив
b = { "a": "1", "b": "3", "d": "4", "v": "5", "e": "6", "f": "7" }
Как мне узнать какие значения есть в ассоциативном массиве a и нет в массиве b ? или как узнать какие значения есть в массиве b и нет в массиве a .
То есть например мы сравниваем ассоциативный массив a c b, и в результате сравнение мы должны узнать что в ассоциативном массиве a есть значения 17, 10, 9 которых нет в ассоциативном массиве b. Или же мы сравниваем b c a , и в результате сравнения мы должны узнать что в ассоциативном массиве b есть 5, 6, 7 которых нет в ассоциативном массиве a.
нужно узнать уникальные значения значений.
Как делать подобные сравнения ?


Ответ

Мне кажется, ничего сложного. Нужно делать ровно так, как вы описали. Нас интересуют только значения, соответственно отбрасываем ключи:
var a_values = Object.keys(a).map(function(key){ return a[key]; });
var b_values = Object.keys(b).map(function(key){ return b[key]; });
После чего ищем "уникальные" для какого-либо массива:
var res = [];
for (var a_key in a_values) { if (b_values.indexOf(a_values[a_key]) == -1) { res.push(a_values[a_key]); } }
Рабочий пример: JSFiddle

Комментариев нет:

Отправить комментарий