Heim > Web-Frontend > js-Tutorial > Hauptteil

Was sind die neuen Methoden von ECMA5-Arrays und forEach()-Imitations-Javascript-Fähigkeiten?

WBOY
Freigeben: 2016-05-16 15:33:56
Original
1525 Leute haben es durchsucht

Das Folgende ist ein Codebeispiel, um Ihnen die Nachahmungsimplementierung der neuen Methode forEach() von ECMA5-Arrays vorzustellen. Der spezifische Code lautet wie folgt:

var o = {
       forEach: function (callback) {
         // alert(this.length);
         for (var i = , len = this.length; i < len; i++) {
           callback && callback(this[i], i, this);
         }
       },
       get length(){
         var sum=;
         for(var n in this) {
           sum+=;
         }
         return sum;
       }
     };
     Object.defineProperty(o,"length",{enumerable:false});
     Object.defineProperty(o,"forEach",{enumerable:false});
     o[] = ;
     o[] = ;
     o[] = ;
     o.forEach(function(v,i,arr){
       arr[i]=v+;
       console.log(arr[i]+"callback");
     });
Nach dem Login kopieren

Es ist erwähnenswert:

1. Verwendung der Rückruffunktion

2.Die Bedeutung der Funktionen defineProperty und defineProperties

Diese beiden Funktionen können die vier Hauptmerkmale von Objekteigenschaften definieren – Wert, Beschreibbarkeit, Aufzählbarkeit und Konfigurierbarkeit

Ich habe noch etwas Zeit, Ihnen einige neue Array-Methoden in ECMA5 wie folgt vorzustellen:

Als ich heute Übungen machte, bin ich auf fitter() gestoßen; ich habe diese neuen Array-Methoden schon einmal gesehen, aber sie wurden noch nie im tatsächlichen Kampf verwendet, deshalb werde ich sie heute überprüfen;

forEaach()

Diese Methode durchläuft ein Array vom Anfang bis zum Ende und ruft dann die angegebene Funktion für jedes Element im Array auf. Diese Funktion dient als erster Parameter von foreach. Die aufgerufene Funktion kann drei Parameter haben: das aktuelle Array-Element, den Index des aktuellen Elements und das zu durchlaufende Array. Wenn es nur einen Parameter gibt, ist dieser Parameter das aktuelle Array-Element.

var data = [1,2,3,4,5] ;
// 计算数组的和
var sum = 0 ; 
data.forEach(function(value){sum += value; }); // 这里的value 分别代指 data[0~4];
console.log( sum ) // 15
// 每个数组元素自加1
data.forEach(function(v, i, a){ a[i] = v + 1; }) // v 分别代指 data[0~4]; a 代指data;
map() ;
Nach dem Login kopieren

Die Methode „map()“ übergibt jedes Element des aufgerufenen Arrays an die angegebene Funktion und gibt ein Array zurück (genau das gleiche Format wie das aufrufende Array), das den Rückgabewert der Funktion enthält : Es muss einen Rückgabewert haben und darf das Array, aus dem es aufgerufen wird, nicht ändern.

var a = [1,2,3];
b = a.map(function(x) { return x * x; });
filter() 
Nach dem Login kopieren
Der Rückgabewert dieser Funktion ist eine Teilmenge der aufrufenden Funktion, da der an sie übergebene Funktionsausdruck zum Treffen logischer Beurteilungen verwendet wird. Wenn er wahr ist, wird der aktuelle Wert zur Rückgabe in das Teilmengenarray verschoben.

var getNum = function (a, b, k) {
return a.filter(function (v) {return b.indexOf(v) > -1;})[k-1];
}
var A = [3,4,5,6,7,8,9];
var B = [12,10,8,6];
console.log(getNum(A, B, 1))
console.log(getNum(A, B, 2));
every() some() ;
Nach dem Login kopieren
Die Parameter dieser beiden Funktionen sind beide eine Beurteilungsfunktion, die die Array-Elemente beurteilt, und der Rückgabewert ist wahr oder falsch;

In every()Nur ​​wenn alle Array-Elemente die Beurteilungsfunktion aufrufen und true zurückgeben, ist der Rückgabewert etwas ähnlich wie &;

In manchen () gibt es true zurück, solange ein Array-Element die Beurteilungsfunktion als wahr aufruft.

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage