@Valeriy1997

Как удалить повторяющиеся значения с массива?

Есть массив, с которого нужно удалить повторяющиеся значения , но оставить одно уникальное. Например : [privet, privet, kakdela ] должно получится [privet, kakdela].

А у меня выходит так [kakdela ] то есть удаляет все повторы не оставляя ни одного . Подскажите как исправить код ?

var array = [1, 2, 1, 10, 5, 3, 4, 40, 50],

     i = array.length,

     result = [];

 array.sort(function (a, b) {

     return a - b;

 });

 for (var i = 0; i < array.length; i++) {

     array[i] != array[i - 1] && array[i + 1] != array[i] && result.push(array[i])

 }

 alert(result);
  • Вопрос задан
  • 12204 просмотра
Решения вопроса 5
@vsvladimir
Убрать лишнюю проверку.
array[i] != array[i - 1] && result.push(array[i])
Ответ написан
Комментировать
Stalker_RED
@Stalker_RED
function arrayUnique(arr){
    return arr.filter((e,i,a)=>a.indexOf(e)==i)
}

// test
console.info(arrayUnique([1, 2, 1, 10, 5, 3, 4, 40, 50]))  // -> [1, 2, 10, 5, 3, 4, 40, 50]
console.info(arrayUnique([1, 2, 3, 1, 2, 33, 33, 55, 66])) // -> [1, 2, 3, 33, 55, 66]
console.info(arrayUnique(['privet', 'privet', 'kakdela'])) // -> ["privet", "kakdela"]

Тест: jsfiddle.net/p5Lve6c6
Ответ написан
Комментировать
@GeneD88
QA
_.uniq(['privet', 'privet', 'kakdela'])

ps: underscore.js
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы