Как удалить повторяющиеся значения из массива JavaScript
Вы можете использовать метод indexOf()
вместе с push()
, чтобы удалить повторяющиеся значения из массива или получить все уникальные значения из массива в JavaScript.
Давайте посмотрим на следующий пример, чтобы понять, как это работает:
<script>
// Определение функции для получения уникальных значений из массива
function getUnique(array){
var uniqueArray = [];
// Перебираем значения массива
for(i=0; i < array.length; i++){
if(uniqueArray.indexOf(array[i]) === -1) {
uniqueArray.push(array[i]);
}
}
return uniqueArray;
}
var names = ["John", "Peter", "Clark", "Harry", "John", "Alice"];
var uniqueNames = getUnique(names);
console.log(uniqueNames); // Печатаем: ["John", "Peter", "Clark", "Harry", "Alice"]
</script>
В качестве альтернативы вы можете использовать недавно представленный цикл for-of
в ES6 вместо цикла for
, чтобы очень легко выполнить эту фильтрацию, как показано в следующем примере:
<script>
// Определение функции для получения уникальных значений из массива
function getUnique(array){
var uniqueArray = [];
// Перебираем значения массива
for(var value of array){
if(uniqueArray.indexOf(value) === -1){
uniqueArray.push(value);
}
}
return uniqueArray;
}
var names = ["John", "Peter", "Clark", "Harry", "John", "Alice"];
var uniqueNames = getUnique(names);
console.log(uniqueNames); // Печатаем: ["John", "Peter", "Clark", "Harry", "Alice"]
</script>
Ознакомьтесь с руководством по циклам JavaScript, чтобы узнать больше о цикле for-of
в ES6.