У меня есть два массива следующим образом:Удалить дубликаты из массива JavaScript Согласно другому массиву?
var Ids = ['123', '456', '789', '789'];
var Names = ['jack', 'jack', 'peter', 'peter'];
Теперь мне нужно, чтобы удалить повторяющиеся значения в Ids
массиве, а затем в соответствии с этим, удалять значения в Names
массиве.
можно удалить повторяющиеся значения для каждого массива отдельно, используя .filter()
так:
var Unique_Ids = Ids.filter(function(item, pos) { return Ids.indexOf(item) == pos; });
//=> 123, 456, 789
var Unique_Names = Ids.filter(function(item, pos) { return Names.indexOf(item) == pos; });
//=> jack, peter
Но это не то, что мне нужно .. мне нужно количество элементов в обоих массивах равными (в данном случае 3
, в соответствии с количеством товаров в Unique_Ids
).
Во всяком случае то, что мне нужно это:
var Unique_Ids = ['123', '456', '789'];
var Unique_Names = ['jack', 'jack', 'peter'];
Как я могу это сделать?
Примечание: Я не хочу, раствор, содержащий этот indexOf()
метод. Потому что он не работает на IE и старых браузерах. И я думаю, что jQuery.inArray()
может быть хорошей альтернативой.
Вы упоминаете вы не хотите использовать IndexOf, но вы уже делаете это? return Names.indexOf (item) – user2267175
если у вас 'array.filter', у вас есть' array.indexOf' –
@JaromandaX Ну, я пытаюсь найти другой подход .. – stack