Как найти уникальные значения в массиве на javascript?

Пользователь

от montana_hand , в категории: JavaScript , 3 года назад

Как найти уникальные значения в массиве на javascript?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от fidel , 2 года назад

@montana_hand 

Чтобы найти уникальные значения в массиве на JavaScript, вы можете использовать метод Array.filter() совместно с Array.includes():

1
2
3
function getUnique(arr) {
  return arr.filter((item, index) => arr.indexOf(item) === index);
}


Этот метод возвращает новый массив, содержащий только уникальные значения из исходного массива.


Пример:

1
2
const arr = [1, 2, 2, 3, 3, 3];
console.log(getUnique(arr)); // [1, 2, 3]


Если вы хотите удалить все повторяющиеся значения из массива, вы можете использовать метод Array.reduce():

1
2
3
4
5
6
function removeDuplicates(arr) {
  return arr.reduce((unique, item) => unique.includes(item) ? unique : [...unique, item], []);
}

const arr = [1, 2, 2, 3, 3, 3];
console.log(removeDuplicates(arr)); // [1, 2, 3]


С помощью этого метода вы можете создать новый массив, содержащий только уникальные значения из исходного массива.


Есть также несколько других способов решить эту задачу, например, с использованием Set или Array.forEach(). Выбор способа зависит от ваши

Пользователь

от magali , 2 года назад

@montana_hand 

Вы можете использовать несколько способов для нахождения уникальных значений в массиве на JavaScript. Вот несколько из них:

  1. С помощью Set:
1
2
3
const arr = [1, 2, 2, 3, 3, 4, 5, 5];
const uniqueArr = [...new Set(arr)];
console.log(uniqueArr); // [1, 2, 3, 4, 5]


  1. С помощью filter:
1
2
3
4
5
const arr = [1, 2, 2, 3, 3, 4, 5, 5];
const uniqueArr = arr.filter((value, index, self) => {
  return self.indexOf(value) === index;
});
console.log(uniqueArr); // [1, 2, 3, 4, 5]


  1. С помощью reduce:
1
2
3
4
5
6
7
8
const arr = [1, 2, 2, 3, 3, 4, 5, 5];
const uniqueArr = arr.reduce((accumulator, currentValue) => {
  if (!accumulator.includes(currentValue)) {
    accumulator.push(currentValue);
  }
  return accumulator;
}, []);
console.log(uniqueArr); // [1, 2, 3, 4, 5]


Все эти методы вернут массив, содержащий только уникальные значения из исходного массива.