Предположим есть ассоциативный массив `
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
Комментариев нет:
Отправить комментарий