Heim >Web-Frontend >js-Tutorial >Über die js-Iterator-Methode

Über die js-Iterator-Methode

小云云
小云云Original
2017-12-06 15:03:102095Durchsuche

Ein Iterator ist ein Objekt, das zum Durchlaufen einiger oder aller Elemente in einem Standardvorlagenbibliothekscontainer verwendet werden kann. Jedes Iteratorobjekt repräsentiert eine bestimmte Adresse im Container. Es gibt zwei Arten von Iteratormethoden für js-Arrays: Die eine generiert kein neues Array und die andere generiert ein neues Array.

Die erste Methode: erzeugt kein neues Array, sondern führt entweder eine Operation für jedes Element im Array durch oder gibt einen Wert zurück.

1. forEach()-Methode, die eine Funktion als Parameter empfängt und die Funktion für jedes Element im Array verwendet.

<script>
 function arr(num){console.log(num+1)};
 var array = [1,2,3,4,5,6];
 array.forEach(arr);
</script>

2. every() und some(), beide Methoden akzeptieren eine Funktion, deren Rückgabewert ein boolescher Typ ist, und verwenden diese Funktion für jedes Element im Array. Die Methode every() gibt true zurück, wenn die Funktion für alle Elemente true zurückgibt. Die Methode some() gibt true zurück, solange ein Element diese Funktion verwendet, um true zurückzugeben.


<script>
 var  arr = [1,3,4,5,6,7,8];
function even(num){return num%2 ==0};
var sum = arr.every(even);
var  nums = arr.some(even);
console.log(sum)//false;
console.log(nums)//true;
</script>

3. Die Methode Reduce() akzeptiert eine Funktion und gibt einen Wert zurück. Diese Methode beginnt mit einem akkumulierten Wert, ruft die Funktion weiterhin für den akkumulierten Wert und die nachfolgenden Elemente im Array auf, bis zum letzten Element im Array, und gibt schließlich den akkumulierten Wert zurück. Sie können die String-Array-Elemente auch zu einem langen String verketten


function add(total,num){return total+-*/num};
var arr =[1,2,3,4];
var sum = arr.reduce(add);

js stellt auch die Methode ReduceRight() zur Verfügung, der Unterschied besteht darin, dass sie in der Reihenfolge mit der Reduzierung erfolgt ()-Methode Genau das Gegenteil, von rechts nach links.
Die zweite Methode ist die Iteratormethode, die ein neues Array generiert

Es gibt zwei Iteratormethoden, die ein neues Array generieren können: map() und filter(). map() ist ein bisschen wie forEach() und verwendet eine Funktion für jedes Element im Array. Der Unterschied zwischen den beiden besteht darin, dass map() ein neues Array zurückgibt, das das Ergebnis der Anwendung einer Funktion auf die ursprünglichen Elemente ist.


   function add(num) {
        return num+=5;
    }
    var words =[1,2,3,4,5];
    var sum =words.map(add);
console.log(sum);//[6,7,8,9,10]

filter() ähnelt every() und übergibt eine Funktion, deren Rückgabewert ein boolescher Typ ist. Der Unterschied zu every() besteht darin, dass Array ist: Wenn die Funktion auf alle Elemente angewendet wird und die Ergebnisse wahr sind, gibt diese Methode nicht „true“ zurück, sondern ein neues Array mit den Elementen, für die die Funktion wahr ist.


    function add(num) {
        return num%2 == 0;
    }
    var words =[1,2,3,4,5];
    var sum =words.filter(add);
console.log(sum);//[2,4];
<br/>

filter() kann auch zum Filtern von String-Arrays verwendet werden. Zum Beispiel:


function add(str){if(str).indexOf("cie")>-1){return true;}return false;}
var words =["recieve","deceit","deceive"]
var miss = words.filter(add);
console.log(miss)//["recieve"]

Der obige Inhalt bezieht sich auf die js-Iterator-Methode. Ich hoffe, sie kann jedem helfen.

Verwandte Empfehlungen:

Beispielanalyse zur Verwendung eines PHP-Iterators zur Implementierung einer Fibonacci-Sequenzfunktion

PHP-Iterator Was ist

So implementieren Sie das JavaScript-Iteratormuster und detaillierte Erläuterung von Anwendungsbeispielen

Das obige ist der detaillierte Inhalt vonÜber die js-Iterator-Methode. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn