Heim > Web-Frontend > js-Tutorial > Detailliertes Beispiel der neuen Array-Methode in ECMAScript5_Javascript-Kenntnissen

Detailliertes Beispiel der neuen Array-Methode in ECMAScript5_Javascript-Kenntnissen

WBOY
Freigeben: 2016-05-16 15:06:31
Original
1528 Leute haben es durchsucht

ECMAScript5 bietet eine Reihe neuer API-Schnittstellen, die in den neuen Browsern IE9, Chrome und FirFor unterstützt werden. Es gibt auch einige APIs, die nicht von allen Browsern unterstützt werden Stellt nur die meisten der unterstützten APIs vor. Mit der neuen API können wir sehr zuverlässige Klassen entwerfen und dabei den ursprünglichen JavaScript-Stil beibehalten.

Der ECMAScript5-Standard wurde am 3. Dezember 2009 veröffentlicht. Er bringt einige neue Methoden mit sich, um bestehende Array-Array-Operationen zu verbessern. (Kompatibilität beachten)

In ES5 gibt es insgesamt 9 Array-Methoden: http://kangax.github.io/compat-table/es5/

Array.prototype.indexOf
Array.prototype.lastIndexOf
Array.prototype.every
Array.prototype.some
Array.prototype.forEach
Array.prototype.map
Array.prototype.filter
Array.prototype.reduce
Array.prototype.reduceRight 
Nach dem Login kopieren

7 der Methoden sind unten aufgeführt. Die ersten 5 Methoden sind sehr verbreitet und werden von vielen Entwicklern verwendet:

1. indexOf()

Die Methode indexOf() gibt die Position des ersten im Array gefundenen Elements zurück oder -1, wenn es nicht existiert.

var arr = ['apple', 'orange', 'pear'],
found = false;
// 未使用
for (var i = 0, l = arr.length; i < l; i++) {
if (arr[i] === 'orange') {
found = true;
}
}
console.log("found:", found); // ==> found: true
// 使用后
console.log("found:", arr.indexOf("orange") != -1); // ==> found: true 
Nach dem Login kopieren

2. filter()

Die Methode filter() erstellt ein neues Array, das den Filterbedingungen entspricht.

Wenn filter() nicht verwendet wird:

var arr=[{"name":"apple", "count": 2},{"name":"orange", "count": 5},{"name":"pear", "count": 3},{"name":"orange", "count": 16},]
var newArr = [];
for (var i = 0; i < arr.length; i++) {
if (arr[i].name === "orange") {
newArr.push(arr[i]);
}
}
console.log("Filter results:", newArr); 
Nach dem Login kopieren

verwendeter Filter():

var newArr = arr.filter(function(item) {
return item.name === "orange";
});
console.log("Filter results:", newArr); 
Nach dem Login kopieren

3. forEach()

forEach führt für jedes Element die entsprechende Methode aus und wird verwendet, um die for-Schleife zu ersetzen.

var arr = [1, 2, 3, 4, 5, 6, 7, 8];
// 使用for循环
for (var i = 0, l = arr.length; i < l; i++) {
console.log(arr[i]);
}
// 使用forEach循环
arr.forEach(function(item, index) {
console.log(item);
}); 
Nach dem Login kopieren

4. Karte()

Nachdem map() für jedes Element des Arrays bestimmte Operationen (Mapping) ausgeführt hat, wird ein neues Array zurückgegeben.

var oldArr = [{first_name: "Colin",last_name: "Toh"}, {first_name: "Addy",last_name: "Osmani"}, {first_name: "Yehuda",last_name: "Katz"}];
function getNewArr() {
var newArr = [];
for (var i = 0; i < oldArr.length; i++) {
var item = oldArr[i];
item.full_name = [item.first_name, item.last_name].join(" ");
newArr[i] = item;
}
return newArr;
}
var personName = getNewArr();
personName.forEach(function(item, index) {
console.log(item);
})
/****输出结果:
Object {first_name: "Colin", last_name: "Toh", full_name: "Colin Toh"}
Object {first_name: "Addy", last_name: "Osmani", full_name: "Addy Osmani"}
Object {first_name: "Yehuda", last_name: "Katz", full_name: "Yehuda Katz"}
****/ 
Nach dem Login kopieren

Verwenden Sie die Methode „map()“:

function getNewArr() {
return oldArr.map(function(item, index) {
item.full_name = [item.first_name, item.last_name].join(" ");
return item;
})
}
var personName = getNewArr();
personName.forEach(function(item, index) {
console.log(item);
})
/****输出结果:
Object {first_name: "Colin", last_name: "Toh", full_name: "Colin Toh"}
Object {first_name: "Addy", last_name: "Osmani", full_name: "Addy Osmani"}
Object {first_name: "Yehuda", last_name: "Katz", full_name: "Yehuda Katz"}
****/ 
Nach dem Login kopieren

5. Reduzieren()

reduce() kann die Funktion eines Akkumulators implementieren und jeden Wert des Arrays (von links nach rechts) auf einen Wert reduzieren. Es kann auch so verstanden werden: Lassen Sie die vorherigen und nachfolgenden Elemente im Array eine Operation ausführen und den Endwert akkumulieren

Szenario: Zählen Sie, wie viele eindeutige Wörter es in einem Array gibt;


var arr = ["apple", "orange", "apple", "orange", "pear", "orange"];
function getWordCnt() {
var obj = {};
for (var i = 0; i < arr.length; i++) {
var item = arr[i];
obj[item] = (obj[item] + 1) || 1;
}
return obj;
}
console.log(getWordCnt());
// 输出结果:
// Object {apple: 2, orange: 3, pear: 1} 
Nach dem Login kopieren
Nach der Verwendung von Reduce():


var arr = ["apple", "orange", "apple", "orange", "pear", "orange"];
function getWordCnt() {
return arr.reduce(function(prev, next) {
prev[next] = (prev[next] + 1) || 1;
return prev;
}, {});
}
console.log(getWordCnt());
// 输出结果:
// Object {apple: 2, orange: 3, pear: 1} 
Nach dem Login kopieren

6, array.some(callback[, thisObject]); callback: Funktion zum Testen bestimmter Elemente. thisObject: Das Objekt wird als Ausführungsrückruf verwendet.


Erkennen Sie, ob bestimmte Elemente im Array die Bedingungen erfüllen;


var scores = [45, 60, 70, 65, 95, 85];
var current = 60;
function passed(score) {
return score > current;
}
console.log(scores.some(passed)); // == > true 
Nach dem Login kopieren
7. array.every(callback[, thisObject]);

callback : Funktion wird zum Testen jedes Elements verwendet. thisObject: Das Objekt wird als Ausführungsrückruf verwendet. Überprüfen Sie, ob jedes Element im Array die Bedingungen erfüllt;


Das obige Beispiel stellt Ihnen die neue Array-Methode in ECMAScript5 vor. Ich hoffe, es wird Ihnen hilfreich sein!
var scores = [45, 60, 70, 65, 95, 85];
var current = 60;
function passed(score) {
return score > current;
}
console.log(scores.every(passed)); // == > false
Nach dem Login kopieren
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