JavaScript-arrayiteration

Arrayiterationsmetoder utför operationer på varje arrayelement.

Array.forEach()

forEach() Metoden anropar funktionen (callback-funktionen) en gång för varje arrayelement.

Exempel

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

Prova själv

Kommentar:Funktionen accepterar 3 parametrar:

  • Projektvärde
  • Projektindex
  • Array själv

Detta exempel använde bara value-parametern. Det kan omformuleras som:

Exempel

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

Prova själv

alla webbläsare stöder Array.forEach()utom Internet Explorer 8 eller tidigare versioner:

Ja 9.0 Ja Ja Ja

Array.map()

map() Metoden skapar en ny array genom att köra funktionen på varje arrayelement.

map() Metoden utför inte funktionen på arrayelement utan värde.

map() Metoden ändrar inte den ursprungliga arrayen.

Detta exempel multiplicerar varje arrayvärde med 2:

Exempel

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

Prova själv

Vänligen notera att funktionen har 3 parametrar:

  • Projektvärde
  • Projektindex
  • Array själv

När callback-funktionen endast använder value-parametern kan index- och array-parametrarna utelämnas:

Exempel

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

Prova själv

alla webbläsare stöder Array.map()utom Internet Explorer 8 eller tidigare versioner:

Ja 9.0 Ja Ja Ja

Array.filter()

filter() Metoden skapar en ny array som innehåller de arrayelement som har passerat testet.

Detta exempel skapar en ny array med element som har värden större än 18:

Exempel

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

Prova själv

Observera att denna funktion accepterar 3 parametrar:

  • Projektvärde
  • Projektindex
  • Array själv

I det ovanstående exemplet använder callback-funktionen inte index- och array-parametrarna, så de kan utelämnas:

Exempel

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

Prova själv

alla webbläsare stöder Array.filter()utom Internet Explorer 8 eller tidigare versioner:

Ja 9.0 Ja Ja Ja

Array.reduce()

reduce() Metoden kör funktionen på varje arrayelement för att generera (minskar det) en enskild värde.

reduce() Metoden arbetar från vänster till höger i arrayen. Se också reduceRight().

reduce() Metoden minskar inte den ursprungliga arrayen.

Detta exempel bestämmer summan av alla tal i arrayen:

Exempel

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

Prova själv

Vänligen notera att denna funktion accepterar 4 parametrar:

  • Totalt (initialvärdet/ tidigare returnerade värdet)
  • Projektvärde
  • Projektindex
  • Array själv

I föregående exempel användes inte index och array-parametrarna. Det kan skrivas om till:

Exempel

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

Prova själv

reduce() Metoden kan acceptera en initial värde:

Exempel

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

Prova själv

alla webbläsare stöder Array.reduce()utom Internet Explorer 8 eller tidigare versioner:

Ja 9.0 Ja Ja Ja

Array.reduceRight()

reduceRight() Metoden kör funktionen på varje arrayelement för att generera (minskar det) en enskild värde.

reduceRight() Metoden arbetar från höger till vänster i arrayen. Se också reduce().

reduceRight() Metoden minskar inte den ursprungliga arrayen.

Detta exempel bestämmer summan av alla tal i arrayen:

Exempel

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

Prova själv

Vänligen notera att denna funktion accepterar 4 parametrar:

  • Totalt (initialvärdet/ tidigare returnerade värdet)
  • Projektvärde
  • Projektindex
  • Array själv

I föregående exempel användes inte index och array-parametrarna. Det kan skrivas om till:

Exempel

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

Prova själv

alla webbläsare stöder Array.reduceRight()utom Internet Explorer 8 eller tidigare versioner:

Ja 9.0 Ja Ja Ja

Array.every()

every() Metoden kontrollerar om alla arrayvärden går igenom testet.

Denna exempelkontrollerar om alla arrayvärden är större än 18:

Exempel

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

Prova själv

Observera att denna funktion accepterar 3 parametrar:

  • Projektvärde
  • Projektindex
  • Array själv

Om callback-funktionen endast använder den första parametern (värdet) kan de andra parametrarna utelämnas:

Exempel

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

Prova själv

alla webbläsare stöder Array.every()utom Internet Explorer 8 eller tidigare versioner:

Ja 9.0 Ja Ja Ja

Array.some()

some() Metoden kontrollerar om vissa arrayvärden går igenom testet.

Denna exempelkontrollar om vissa arrayvärden är större än 18:

Exempel

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

Prova själv

Observera att denna funktion accepterar 3 parametrar:

  • Projektvärde
  • Projektindex
  • Array själv

alla webbläsare stöder Array.some()utom Internet Explorer 8 eller tidigare versioner:

Ja 9.0 Ja Ja Ja

Array.indexOf()

indexOf() Metoden söker efter ett element i en array och returnerar dess plats.

Kommentar:Platsen för det första objektet är 0, platsen för det andra objektet är 1, och så vidare.

Exempel

Sök objektet "Apple" i arrayen:

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

Prova själv

alla webbläsare stöder Array.indexOf()utom Internet Explorer 8 eller tidigare versioner:

Ja 9.0 Ja Ja Ja

grammatik

array.indexOf(objekt, start)
objekt obligatoriskt. Det att söka efter objektet.
start valfritt. Varifrån ska sökningen börja. Negativa värden börjar från den givna positionen från slutet och söker till slutet.

om objektet inte hittas:Array.indexOf() returnerar -1.

om objektet uppträder flera gånger, returneras platsen för första uppträdet.

Array.lastIndexOf()

Array.lastIndexOf() med Array.indexOf() Liknande, men söker från slutet av arrayen.

Exempel

Sök objektet "Apple" i arrayen:

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

Prova själv

alla webbläsare stöder Array.lastIndexOf()utom Internet Explorer 8 eller tidigare versioner:

Ja 9.0 Ja Ja Ja

grammatik

array.lastIndexOf(objekt, start)
objekt obligatoriskt. Det att söka efter objektet.
start Valfritt. Från var börja söka. Negativa värden börjar från slutet och söker till början.

Array.find()

find() Metoden returnerar värdet för det första arrayelement som passerar testfunktionen.

Detta exempel söker (returnerar) värdet för den första element som är större än 18:

Exempel

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

Prova själv

Observera att denna funktion accepterar 3 parametrar:

  • Projektvärde
  • Projektindex
  • Array själv

Gamla webbläsare stöder inte Array.find()Nedan listas den första webbläsarversion som fullständigt stöder denna metod:

45 12 25 8 32

Array.findIndex()

findIndex() Metoden returnerar index för den första arrayelement som passerar testfunktionen.

Detta exempel söker efter den första elementets index som är större än 18:

Exempel

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

Prova själv

Observera att denna funktion accepterar 3 parametrar:

  • Projektvärde
  • Projektindex
  • Array själv

Gamla webbläsare stöder inte Array.findIndex()Nedan listas den första webbläsarversion som fullständigt stöder denna metod:

45 12 25 8 32