JavaScript-arrayiterationer

Arrayiterationer udfører operationer på hvert arrayelement.

Array.forEach()

forEach() Metoden kaller funktionen (callback-funktionen) én gang for hver arrayelement.

Eksempel

var txt = "";
var numbers = [45, 4, 9, 16, 25];
numbers.forEach(myFunction);
function myFunction(value, index, array) {
  txt = txt + value + "<br>"; 
}

Prøv det selv

Kommentar:Funktionen accepterer 3 parametre:

  • Projektværdi
  • Projektindeks
  • Arrayet selv

Det ovenstående eksempel brugte kun value-parametret. Dette eksempel kan skrives om til:

Eksempel

var txt = "";
var numbers = [45, 4, 9, 16, 25];
numbers.forEach(myFunction);
function myFunction(value) {
  txt = txt + value + "<br>"; 
}

Prøv det selv

alle browsere understøtter Array.forEach(),med undtagelse af Internet Explorer 8 eller tidligere versioner:

Ja 9.0 Ja Ja Ja

Array.map()

map() Metoden opretter en ny array ved at køre funktionen på hvert arrayelement.

map() Metoden udfører ikke funktionen på arrayelementer uden værdier.

map() Metoden ændrer ikke det oprindelige array.

Dette eksempel multiplicerer hver værdi i arrayet med 2:

Eksempel

var numbers1 = [45, 4, 9, 16, 25];
var numbers2 = numbers1.map(myFunction);
function myFunction(value, index, array) {
  return value * 2;
}

Prøv det selv

Bemærk, at funktionen har 3 parametre:

  • Projektværdi
  • Projektindeks
  • Arrayet selv

Når callback-funktionen kun bruger value-parametret, kan index- og array-parametrene udelades:

Eksempel

var numbers1 = [45, 4, 9, 16, 25];
var numbers2 = numbers1.map(myFunction);
function myFunction(value) {
  return value * 2;
}

Prøv det selv

alle browsere understøtter Array.map(),med undtagelse af Internet Explorer 8 eller tidligere versioner:

Ja 9.0 Ja Ja Ja

Array.filter()

filter() Metoden opretter en ny array, der indeholder de arrayelementer, der passede testen.

Dette eksempel opretter en ny array med elementer, der har værdier større end 18:

Eksempel

var numbers = [45, 4, 9, 16, 25];
var over18 = numbers.filter(myFunction);
function myFunction(value, index, array) {
  return value > 18;
}

Prøv det selv

Bemærk, at denne funktion accepterer 3 parametre:

  • Projektværdi
  • Projektindeks
  • Arrayet selv

I det ovenstående eksempel bruger callback-funktionen ikke index- og array-parametrene, så de kan udelades:

Eksempel

var numbers = [45, 4, 9, 16, 25];
var over18 = numbers.filter(myFunction);
function myFunction(value) {
  return value > 18;
}

Prøv det selv

alle browsere understøtter Array.filter(),med undtagelse af Internet Explorer 8 eller tidligere versioner:

Ja 9.0 Ja Ja Ja

Array.reduce()

reduce() Metoden kører funktionen på hver arrayelement for at generere (reducere det) til en enkelt værdi.

reduce() Metoden arbejder fra venstre til højre i arrayet. Se også reduceRight().

reduce() Metoden reducerer ikke det oprindelige array.

Dette eksempel bestemmer summen af alle tal i arrayet:

Eksempel

var numbers1 = [45, 4, 9, 16, 25];
var sum = numbers1.reduce(myFunction);
function myFunction(total, value, index, array) {
  return total + value;
}

Prøv det selv

Bemærk, at denne funktion accepterer 4 parametre:

  • Samlet (initialværdi/forrige returnerede værdi)
  • Projektværdi
  • Projektindeks
  • Arrayet selv

I det foregående eksempel blev ikke brugt index og array parametre. Det kan ændres til:

Eksempel

var numbers1 = [45, 4, 9, 16, 25];
var sum = numbers1.reduce(myFunction);
function myFunction(total, value) {
  return total + value;
}

Prøv det selv

reduce() Metoden kan acceptere en initial værdi:

Eksempel

var numbers1 = [45, 4, 9, 16, 25];
var sum = numbers1.reduce(myFunction, 100);
function myFunction(total, value) {
  return total + value;
}

Prøv det selv

alle browsere understøtter Array.reduce(),med undtagelse af Internet Explorer 8 eller tidligere versioner:

Ja 9.0 Ja Ja Ja

Array.reduceRight()

reduceRight() Metoden kører funktionen på hver arrayelement for at generere (reducere det) til en enkelt værdi.

reduceRight() Metoden arbejder fra højre til venstre i arrayet. Se også reduce().

reduceRight() Metoden reducerer ikke det oprindelige array.

Dette eksempel bestemmer summen af alle tal i arrayet:

Eksempel

var numbers1 = [45, 4, 9, 16, 25];
var sum = numbers1.reduceRight(myFunction);
function myFunction(total, value, index, array) {
  return total + value;
}

Prøv det selv

Bemærk, at denne funktion accepterer 4 parametre:

  • Samlet (initialværdi/forrige returnerede værdi)
  • Projektværdi
  • Projektindeks
  • Arrayet selv

I det foregående eksempel blev ikke brugt index og array parametre. Det kan ændres til:

Eksempel

var numbers1 = [45, 4, 9, 16, 25];
var sum = numbers1.reduceRight(myFunction);
function myFunction(total, value) {
  return total + value;
}

Prøv det selv

alle browsere understøtter Array.reduceRight(),med undtagelse af Internet Explorer 8 eller tidligere versioner:

Ja 9.0 Ja Ja Ja

Array.every()

every() Metoden tjekker om alle værdier i arrayet passerer test.

Dette eksempel tjekker om alle værdier i arrayet er større end 18:

Eksempel

var numbers = [45, 4, 9, 16, 25];
var allOver18 = numbers.every(myFunction);
function myFunction(value, index, array) {
  return value > 18;
}

Prøv det selv

Bemærk, at denne funktion accepterer 3 parametre:

  • Projektværdi
  • Projektindeks
  • Arrayet selv

Hvis callback-funktionen kun bruger den første parameter (værdi), kan de øvrige parametre undlades:

Eksempel

var numbers = [45, 4, 9, 16, 25];
var allOver18 = numbers.every(myFunction);
function myFunction(value) {
  return value > 18;
}

Prøv det selv

alle browsere understøtter Array.every(),med undtagelse af Internet Explorer 8 eller tidligere versioner:

Ja 9.0 Ja Ja Ja

Array.some()

some() Metoden tjekker om nogle værdier i arrayet passerer test.

Dette eksempel tjekker om nogle værdier i arrayet er større end 18:

Eksempel

var numbers = [45, 4, 9, 16, 25];
var someOver18 = numbers.some(myFunction);
function myFunction(value, index, array) {
  return value > 18;
}

Prøv det selv

Bemærk, at denne funktion accepterer 3 parametre:

  • Projektværdi
  • Projektindeks
  • Arrayet selv

alle browsere understøtter Array.some(),med undtagelse af Internet Explorer 8 eller tidligere versioner:

Ja 9.0 Ja Ja Ja

Array.indexOf()

indexOf() Metoden søger efter elementets værdi i arrayet og returnerer dens placering.

Kommentar:Placeringen af det første element er 0, placeringen af det andet element er 1, osv.

Eksempel

Søg efter elementet "Apple" i arrayet:

var fruits = ["Apple", "Orange", "Apple", "Mango"];
var a = fruits.indexOf("Apple");

Prøv det selv

alle browsere understøtter Array.indexOf(),med undtagelse af Internet Explorer 8 eller tidligere versioner:

Ja 9.0 Ja Ja Ja

syntaks

array.indexOf(element, start)
element krævet. At finde elementet.
start valgfri. Hvorfra skal søgningen starte. Negative værdier starter fra den angivne position ved slutningen og søger til slutningen.

hvis elementet ikke findes,Array.indexOf() returnerer -1.

hvis elementet optræder flere gange, returneres første forekomst.

Array.lastIndexOf()

Array.lastIndexOf() med Array.indexOf() Lignende, men søg fra slutningen af arrayet.

Eksempel

Søg efter elementet "Apple" i arrayet:

var fruits = ["Apple", "Orange", "Apple", "Mango"];
var a = fruits.lastIndexOf("Apple");

Prøv det selv

alle browsere understøtter Array.lastIndexOf(),med undtagelse af Internet Explorer 8 eller tidligere versioner:

Ja 9.0 Ja Ja Ja

syntaks

array.lastIndexOf(element, start)
element krævet. At finde elementet.
start Valgfri. Hvor skal søgningen starte. Negative værdier starter fra slutningen og søger til starten.

Array.find()

find() Metoden returnerer værdien for det første arrayelement, der passer til testfunktionen.

Dette eksempel finder (returnerer) værdien for det første element, der er større end 18:

Eksempel

var numbers = [4, 9, 16, 25, 29];
var first = numbers.find(myFunction);
function myFunction(value, index, array) {
  return value > 18;
}

Prøv det selv

Bemærk, at denne funktion accepterer 3 parametre:

  • Projektværdi
  • Projektindeks
  • Arrayet selv

Gamle browsere understøtter ikke Array.find()Nedenunder er den første browserversion, der fuldt ud understøtter denne metode:

45 12 25 8 32

Array.findIndex()

findIndex() Metoden returnerer indekset for det første arrayelement, der passer til testfunktionen.

Dette eksempel finder indekset for den første element, der er større end 18:

Eksempel

var numbers = [4, 9, 16, 25, 29];
var first = numbers.findIndex(myFunction);
function myFunction(value, index, array) {
  return value > 18;
}

Prøv det selv

Bemærk, at denne funktion accepterer 3 parametre:

  • Projektværdi
  • Projektindeks
  • Arrayet selv

Gamle browsere understøtter ikke Array.findIndex()Nedenunder er den første browserversion, der fuldt ud understøtter denne metode:

45 12 25 8 32