Вы можете использовать метод 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.

Читайте также

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 5 / 5. Количество оценок: 1

Оценок пока нет. Поставьте оценку первым.