Dublikatų pašalinimas iš „JavaScript“ masyvo

Dublikatų pašalinimas iš „JavaScript“ masyvo
Dublikatų pašalinimas iš „JavaScript“ masyvo

Masyvo unikalumo supratimas naudojant „JavaScript“.

JavaScript“ įvairioms programoms gali būti labai svarbu užtikrinti, kad masyve būtų tik unikalios reikšmės. Nors yra keli būdai tai pasiekti, tam tikri metodai gali nepavykti tam tikromis sąlygomis, pavyzdžiui, esant nuliui.

Šiame straipsnyje mes išnagrinėsime scenarijaus prototipą, skirtą pašalinti dublikatus iš masyvo. Mes nustatysime problemas, kurias jis turi nulinėmis reikšmėmis, ir palyginsime su patikimesniu sprendimu. Suprasdami šiuos skirtumus, sužinosite, kaip efektyviau tvarkyti masyvo unikalumą „JavaScript“.

komandą apibūdinimas
new Set() Sukuria objektą Set, kuris leidžia saugoti unikalias bet kokio tipo reikšmes.
[...new Set(array)] Naudoja sklaidos operatorių, kad pakeistų rinkinį atgal į unikalių reikšmių masyvą.
Array.prototype.getUnique Apibrėžia naują masyvo prototipo metodą unikalioms reikšmėms išgauti iš masyvo.
uniqueElements[this[i]] = this[i] Saugo kiekvieną elementą kaip objekto raktą, kad užtikrintų unikalumą.
for (let key in uniqueElements) Iteruoja per unikalaus elemento objekto raktus, kad sukurtų rezultatų masyvą.
const uniqueElements = {} Inicijuoja tuščią objektą, kad unikalūs elementai būtų saugomi kaip raktai.

Kaip pašalinti dublikatus „JavaScript“ masyvuose

Pirmasis mūsų pateiktas scenarijus naudoja new Set() objektas JavaScript, kad būtų užtikrintas masyvo unikalumas. A Set yra vertybių rinkinys, kuriame kiekviena vertė turi būti unikali. Perduodami masyvą į a Set, automatiškai išfiltruojame pasikartojančias vertes. Norėdami konvertuoti Set atgal į masyvą, naudojame sklaidos operatorių [...new Set(array)]. Šis metodas yra glaustas ir išnaudoja „JavaScript“ integruotas funkcijas, kad būtų efektyviai pasiektas norimas rezultatas.

Pavyzdžiui, jei turite masyvą su pasikartojančiais skaičiais, įskaitant nulius, pvz [1, 2, 2, 3, 4, 4, 5, 0, 0], funkcija getUniqueValues(array) grąžins masyvą tik su unikaliomis reikšmėmis: [1, 2, 3, 4, 5, 0]. Šis metodas yra paprastas ir apdoroja visų tipų elementus, įskaitant nulius, be jokių problemų.

Pasirinktinis metodas, užtikrinantis unikalias masyvo reikšmes

Antrasis scenarijus apibrėžia pasirinktinį metodą Array.prototype paskambino getUnique. Šis metodas naudoja objektą unikaliems elementams sekti. Metodo metu pirmiausia inicijuojame tuščią objektą const uniqueElements = {} ir tuščias masyvas const resultArray = []. Tada kartojame masyvą naudodami a for kilpa, saugodama kiekvieną elementą kaip raktą uniqueElements objektą, kad visi raktai būtų unikalūs.

Užpildžius uniqueElements objektą, naudojame kitą for...in kilpa, kad kartotumėte objekto klavišus ir įstumtumėte kiekvieną unikalų raktą į resultArray. Galiausiai metodas grįžta resultArray, kuriame yra tik unikalios reikšmės. Šis metodas yra ypač pamokantis, nes parodo, kaip rankiniu būdu valdyti ir užtikrinti unikalumą, nepasikliaujant vien įtaisytomis funkcijomis, taip suteikiant gilesnį supratimą apie duomenų struktūrų tvarkymą JavaScript.

Unikalių verčių užtikrinimas „JavaScript“ masyvuose

„JavaScript“ metodas naudojant rinkinius

function getUniqueValues(array) {
  return [...new Set(array)];
}

// Example usage:
const numbers = [1, 2, 2, 3, 4, 4, 5, 0, 0];
const uniqueNumbers = getUniqueValues(numbers);
console.log(uniqueNumbers);

Pasikartojančių masyvo pašalinimas naudojant pasirinktinę funkciją

„JavaScript“ tinkinto prototipo metodas

Array.prototype.getUnique = function() {
  const uniqueElements = {};
  const resultArray = [];
  for (let i = 0; i < this.length; i++) {
    uniqueElements[this[i]] = this[i];
  }
  for (let key in uniqueElements) {
    resultArray.push(uniqueElements[key]);
  }
  return resultArray;
};

// Example usage:
const numbers = [1, 2, 2, 3, 4, 4, 5, 0, 0];
const uniqueNumbers = numbers.getUnique();
console.log(uniqueNumbers);

Giliai pasinerkite į masyvo deduplikacijos metodus

Kitas svarbus būdas pašalinti dublikatus iš „JavaScript“ masyvo yra naudoti filter metodas kartu su indexOf metodas. Šis metodas apima kartojimą per masyvą ir įtraukiant tik tuos elementus, kurių pirmasis įvykis atitinka jų dabartinę padėtį. Taip užtikrinama, kad kiekvienas elementas būtų įtrauktas tik vieną kartą į gautą masyvą, veiksmingai pašalinant dublikatus.

Pavyzdžiui, apsvarstykite masyvą [1, 2, 2, 3, 4, 4, 5, 0, 0]. Naudojant array.filter((item, index) => array.indexOf(item) === index), galite filtruoti pasikartojančias vertes. Šis metodas veikia tikrinant, ar dabartinio elemento indeksas sutampa su pirmojo to elemento atsiradimo indeksu. Jei taip, elementas yra unikalus ir įtrauktas į naują masyvą.

Dažni klausimai apie „JavaScript“ masyvo deduplikaciją

  1. Koks yra efektyviausias būdas pašalinti pasikartojančius masyvo?
  2. Naudojant a Set yra vienas iš efektyviausių būdų, nes jo laiko sudėtingumas yra O (n).
  3. Ar galiu naudoti filter dublikatų pašalinimo būdas?
  4. Taip, derinant filter su indexOf yra įprastas būdas pašalinti dublikatus.
  5. Kodėl prototype metodas nepavyksta su nuliu?
  6. Pradinis scenarijus nepavyksta su nuliu, nes for (i = 0; e = this[i]; i++) sustoja ties nuliu, interpretuodamas tai kaip klaidingą.
  7. Kaip masyve galiu tvarkyti skirtingus duomenų tipus siekiant unikalumo?
  8. Naudojant a Set efektyviai tvarko skirtingus duomenų tipus užtikrindama, kad kiekviena vertė būtų unikali.
  9. Kokia nauda naudojant new Set() prieš kitus metodus?
  10. new Set() yra glausta ir tvarko visų tipų reikšmes nereikalaujant papildomos logikos.
  11. Ar galiu pridėti unikalų metodą prie visų masyvų?
  12. Taip, pridedant metodą prie Array.prototype, galite padaryti jį prieinamą visiems masyvams.
  13. Kokie yra modifikavimo trūkumai Array.prototype?
  14. Modifikuojamas Array.prototype gali sukelti konfliktų, jei kiti scenarijai taip pat jį modifikuoja.
  15. Ar yra būdas užtikrinti unikalumą nekeičiant pradinio masyvo?
  16. Taip, tokie metodai kaip new Set() ir filter sukurti naują masyvą, išsaugant originalą.

Paskutinės mintys apie „JavaScript“ masyvo deduplikaciją

Suprasdami skirtingus metodus, kaip pašalinti dublikatus iš masyvų, galite pasirinkti tinkamiausią metodą konkrečiam naudojimo atvejui. Ar naudojant Set Siekdami paprastumo ir efektyvumo arba pritaikytų metodų gilesniam supratimui, šių metodų įvaldymas pagerina jūsų JavaScript įgūdžius. Specialių atvejų, pvz., nulinių verčių, tvarkymas užtikrina jūsų sprendimų tvirtumą.