Есть два массива:
[1, 3, 3, 4, 6, 5, 4]
и
[6, 3, 5, 2, 2]
.
Разницу этих массивов надо передать в новый массив, чтобы выглядело следующим образом:
[1, 2, 4]
.
Я попробовал
function arr_diff (a1, a2) {
var a = [], diff = [];
for (var i = 0; i < a1.length; i++) {
a[a1[i]] = true;
}
for (var i = 0; i < a2.length; i++) {
if (a[a2[i]]) {
delete a[a2[i]];
} else {
a[a2[i]] = true;
}
}
for (var k in a) {
diff.push(k);
}
return diff;
}
Но из-за того, что во втором массиве
2
повторяется, новый массив выглядит как
[1,4]
.