2015-11-17 12 views
9

Diciamo che ho:Loop attraverso matrice di valori con Arrow funzione

var someValues = [1, 'abc', 3, 'sss']; 

Come posso utilizzare una funzione freccia per scorrere tutti e eseguire un'operazione su ogni valore?

+1

Impossibile avete appena guardato in su? La [documentazione MDN] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions) è completa con un sacco di esempi ... – Emissary

+0

maledetta quella pagina. Sì, l'ho cercato grazie – PositiveGuy

+0

Non c'è motivo di utilizzare una funzione freccia. Se si desidera eseguire il ciclo di un array, utilizzare un ciclo 'for of'! – Bergi

risposta

18

In breve:

someValues.forEach((element) => { 
    console.log(element); 
}); 

Se vi preoccupate per indice, quindi secondo parametro può essere passato per ricevere l'indice dell'elemento corrente:

someValues.forEach((element, index) => { 
    console.log(`Current index: ${index}`); 
    console.log(element); 
}); 

fare riferimento qui per sapere di più su Array di ES6: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array

+0

C'è un piccolo svantaggio su 'forEach': non è possibile uscire da questo ciclo usando un'istruzione' break' o restituire dalla funzione di inclusione usando un'istruzione 'return'. Maggiori informazioni su questo [qui] (https://hacks.mozilla.org/2015/04/es6-in-depth-iterators-and-the-for-ofop/) – sonlexqt

2

Una dichiarazione può essere scritta come tale:

someValues.forEach(x => console.log(x)); 

o più istruzioni possono essere racchiuse in {} come questo:

someValues.forEach(x => { let a = 2 + x; console.log(a); }); 
+0

grazie. C'è un modo per specificare l'array all'interno dell'espressione in qualche modo troppo quindi non avrei bisogno di creare un array prima e una riga di codice in meno? – PositiveGuy

+0

sì, se l'array si trova in una variabile: 'arr.forOach (x => console.log (arr))' stampa l'intero array tante volte quante sono gli elementi. Non funziona con '[1, 2] .for Ogni altro ...' Non puoi usare 'this'; si riferisce al "questo" dell'ambiente di chiamata – ronasta