Вие сте уеб разработчик? Програмист ли си? Тогава ще сте запознати с JavaScript и различните му вградени функции, методи и т.н. за различни реализации, проблеми и цели.
Един от тези широко задавани проблеми в интервютата на всеки език за програмиране (тук ще говорим за JavaScript) е намирането на уникални елементи в масив или премахването на дубликати от масив.
И така, тази статия ще ви научи на трипрости метода да го изпълните от нулата. Ето ни:

Преди да започнем, само предложение, използвайте Visual Studio Code, тъй като това е най-добрият редактор за всичко, особено за неща, свързани с уеб разработката. Нека да разгледаме нещата, свързани с настройката, които човек трябва да направи. Така че, ако изпълнявате която и да е JavaScript програма в него или ако сте начинаещ в него, трябва да направите следните неща, за да направите нещата гладки:

1. Инсталирайте това разширение във Visual Studio Code.
2. За да стартирате вашата програма, просто „Отворете нов терминал“ и след това напишете възел ‹име на файл›. Уверете се, че сте инсталирали node.js на вашата система.
3. За повече информация можете да посетите тук.

Сега, връщайки се към точката, че тези три прости начина за решаване на широко задавания въпрос за премахване на дубликати в масив в JavaScript са както следва:

Първо, ще декларираме масив с дублиращи се елементи, а именно animals и масив с всички уникални елементи, а именно unique във всички методи, които ще обсъдим.

1. Използване на набори :

Обектът Set съхранява уникални стойности от всякакъв тип, независимо дали са примитивни стойности или препратки към обекти.

Тук, за да премахнем дубликати, преобразуваме масива animal в набор. Новият наборнеявно ще премахне дублиращите се елементи. След това ще преобразуваме този набор обратно в уникаленмасив.

Може би се чудите какво представляват тези … или три точки или технически разширен синтаксис в JavaScript . Е, той приема итерируем обект като масиви или списъци и т.н. и го разширява в отделни елементи.

 // Using Sets 
 let animals = ["Lion", "Rabbit", "Mouse", "Monkey", "Lion","Ape"]
 let unique = [...new Set(animals)]
 console.log(unique) 
 
 Output: ['Lion', 'Rabbit', 'Mouse', 'Monkey', 'Ape']

2. Използване на филтър:

За този метод, нека разберем какво и защо от методите, които са били използвани:

1. indexOf(): Този метод връща индекса на първото появяване на елемент в масив. Логиката, която използвахме, е, че дублираният елемент е елементът, чийто индекс е различен от стойността му indexOf(), оттук това, което върнахме, е елементът, чийто текущи indexи indexOf() стойността е равна.

2. filter(): За да премахнем дубликатите, използваме метода filter(), за да включим само елементи, чиито текущи индексисъвпадат с техните indexOf()стойности. Съхранихме тези стойности в масив с име unique и върнати чрез извикване на функцията usingFilter().

За по-добро разбиране в нашия пример имаме по този начин:
Формат: Текущ индекс -› indexOf()

За стойност „Лъв“ имаме: 0 -› 0, 4 -› 0. (Равенството не е валидно)
За стойността „Заек“ имаме: 1 -› 1. (Равенството е валидно, уникален елемент)
За стойността „Мишка“ имаме: 2 -› 2. (Важи равенство, уникален елемент)
За стойност „Маймуна“ имаме: 3-› 3. (Важи равенство, уникален елемент)
За стойност „Маймуна“ имаме: 5 -› 5. (Спазва се равенство, уникален елемент)

Филтрира тези уникални елементи и ги съхранява в уникаленмасив и ги връща.

// Using Filter Method
let animals = ["Lion", "Rabbit", "Mouse", "Monkey", "Lion", "Ape"]
      let usingFilter = () => {
       return unique = animals.filter(function(item,index){
return animals.indexOf(item) == index
 })
 }
 console.log(usingFilter())
 
Output: [‘Lion', 'Rabbit', 'Mouse', 'Monkey', 'Ape']

Забавен факт: Ако трябва да намерим дубликати в масив с помощта на този метод, просто трябва да обърнем това условие за равенство (==) на (!=) и ето го.

3. Използване на forEach:

Нека отново разберем какви терминологии сме използвали тук:

1. forEach: Това е използва се за повторение на всеки един елемент от масива animals.
2. includes(): Връща true, ако даден елемент е в масив или по друг начин.< br /> 3.push():Добавя новите елементи в края на масив.

Логиката зад този метод е, че декларирахме null уникален масив, след което итерираме всеки и всеки елемент от масива animals и след това проверяваме дали unique масивът включва (или има) този елемент или не. Ако не, тогава ако условие стане истина, тогава ние поставяме този елемент в уникален масив. И така, чрез този процес получаваме всички уникални елементи в уникален масив и ги отпечатваме.

// Using forEach Method
let animals = ["Lion", "Rabbit", "Mouse", "Monkey", "Lion", "Ape"]
let unique = [];
animals.forEach((item) => {
if(!unique.includes(item)){
unique.push(item);
}
});
console.log(unique);
Output: [‘Lion', 'Rabbit', 'Mouse', 'Monkey', 'Ape']

Следователно научихме три важни, кратки и лесно разбираеми метода за премахване на дубликати от масив или намиране на дубликати или уникални елементи от масив. Има и много други методи за извършване на същите неща, но тези се запомнят лесно.

Можете да намерите пълния линк към изходния код тук. Ако намерите още методи, моля, пуснете ги по-долу в коментарите.

Свържете се с мен:
LinkedIn
Twitter
Github
Instagram