es6 Array-Methoden: 1. Methode „find“; 4. Methode „jede“; 8. Methode „reduktion“; ; 10. Schlüsselmethode usw.

Die Betriebsumgebung dieses Tutorials: Windows 7-System, JavaScript-Version 1.8.5, Dell G3-Computer.
Ein Array ist eine Sammlung von Daten desselben Datentyps, die in einer bestimmten Reihenfolge angeordnet sind. In der neuen Version des JavaScript-Sprachstandards ES6 (ECMAScript 6) fügt ES6 einige neue Funktionen zu Arrays hinzu, und diese neuen Funktionen erweitern die Fähigkeit von Arrays, Daten zu verarbeiten. Bei großen Datensammlungen können häufig Akkumulation und Filterung durchgeführt werden ohne Schleifenoperationen, Konvertierung und andere Arbeiten. In diesem Artikel wird zusammengefasst, wie einige neue Funktionen von ES6 für Arrays verwendet werden.
1. Die Kartenmethode
verarbeitet jedes Element im Array, indem sie eine Methode formuliert und das verarbeitete Array zurückgibt.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | console.clear();
var arr = [12,14,34,22,18];
var arr1 = arr.map((currentValue,index,arr) => {
console.log( "当前元素" +currentValue);
console.log( "当前索引" +index);
if (currentValue>20) {
return currentValue-10;
} else {
return currentValue-5;
}
})
console.log(arr1)
let nums = [1, 2, 3];
let obj = {val: 5};
let newNums = nums.map( function (item,index, array ) {
return item + index + array [index] + this.val;
}, obj);
console.log(newNums);
|
Nach dem Login kopieren
2. Die Methoden „find“ und „findIndex“ rufen Elemente im Array ab. Die Methode „find“ gibt das erste Element zurück, das die Anforderungen erfüllt, und die Methode „findIndex“ gibt den Index des ersten Elements zurück, das die Anforderungen erfüllt. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | console.clear();
var arr = [12,14,34,22,18];
var arr1 = arr.find((currentValue, index) => {
return currentValue>20;
})
var arr2 = arr.findIndex((currentValue, index) => {
return currentValue>20;
})
console.log(arr,arr1,arr2);
var allPeple = [
{name: '小王', id: 14},
{name: '大王', id: 41},
{name: '老王', id: 61}
]
var PId = 14;
var myTeamArr = [{name: '小王', id: 14}]
function testFunc(item){ return item.id == PId ;}
myTeamArr.findIndex(testFunc) == -1
? myTeamArr.push(allPeple.find(testFunc))
: console.log('已存在该人员');
var stu = [
{name: '张三', gender: '男', age: 20},
{name: '王小毛', gender: '男', age: 20},
{name: '李四', gender: '男', age: 20}
]
var obj = stu.find((element) => (element.name == '李四'))
console.log(obj);
console.log(obj.name);
[1,2,3].findIndex( function (x) {x == 2;});
[1,2,3].findIndex(x => x == 4);
|
Nach dem Login kopieren
3. Die Filtermethode
ruft die Elemente im Array ab und gibt alle Elemente, die die Anforderungen erfüllen, in Form eines Arrays zurück. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | console.clear();
var arr = [12,14,34,22,18];
var arr1 = arr.filter((currentValue, index) => {
return currentValue>20;
})
console.log(arr,arr1);
var arr = [
{ id: 1, text: 'aa', done: true },
{ id: 2, text: 'bb', done: false }
]
console.log(arr.filter(item => item.done))
let nums = [1, 2, 3];
let oddNums = nums.filter(item => item % 2);
console.log(oddNums);
|
Nach dem Login kopieren
4. Die every-Methode
erkennt, ob jedes Element im Array die Bedingungen erfüllt. Wenn ja, gibt sie true zurück, andernfalls ist sie false. 1 2 3 4 5 6 | console.clear();
var arr = [12,14,34,22,18];
var arr1 = arr.every((currentValue, index) => {
return currentValue>20;
})
console.log(arr,arr1);
|
Nach dem Login kopieren
5. Eine Methode
erkennt, ob Elemente im Array vorhanden sind, die die Bedingungen erfüllen. Wenn ja, gibt sie true zurück, andernfalls ist sie false. 1 2 3 4 5 6 | console.clear();
var arr = [12,14,34,22,18];
var arr1 = arr.some((currentValue, index) => {
return currentValue>20;
})
console.log(arr,arr1);
|
Nach dem Login kopieren
6. Die Methoden „reduce“ und „reduceRight“ empfangen eine Funktion als Akkumulator (Akkumulator). Jeder Wert im Array beginnt sich zu reduzieren und wird schließlich zu einem Wert. Reduce akzeptiert eine Funktion mit vier Parametern: dem letzten Wert previousValue, dem aktuellen Wert currentValue, dem Index des aktuellen Werts und dem Array-Array.
Die Methode „reduceRight“ ist mit der Methode „reduce“ identisch. Beide ermitteln die kumulative Anzahl des Arrays. Der Unterschied besteht darin, dass ReduceRight() die Array-Elemente im Array vom Ende des Arrays an akkumuliert. Wenn ReduceRight() die Callback-Funktion callbackfn zum ersten Mal aufruft, können prevValue und curValue einer von zwei Werten sein. Wenn ReduceRight() mit einem InitialValue-Argument aufgerufen wird, ist PrevValue gleich InitialValue und CurValue gleich dem letzten Wert im Array. Wenn der Parameter initialValue nicht angegeben wird, ist prevValue gleich dem letzten Wert im Array und curValue gleich dem vorletzten Wert im Array.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | console.clear();
var arr = [0,1,2,3,4];
var total = arr.reduce((a, b) => a + b);
console.log(total);
var sum = arr.reduce( function (previousValue, currentValue, index, array ){
console.log(previousValue, currentValue, index);
return previousValue + currentValue;
});
console.log(sum);
var sum1 = arr.reduce( function (previousValue, currentValue, index){
console.log(previousValue, currentValue, index);
return previousValue + currentValue;
},5);
console.log(sum1);
var sum2 = arr.reduceRight( function (preValue,curValue,index) {
return preValue + curValue;
});
var sum3 = arr.reduceRight( function (preValue,curValue,index) {
return preValue + curValue;
}, 5);
var arr1 = arr.map((oVal) => { return oVal*oVal;})
console.log(arr1);
var total1 = arr1.reduce((a, b) => a + b);
console.log(total1);
let nums = [1, 2, 3, 4, 5];
let newNums = nums.reduce( function (preSum,curVal, array ) {
return preSum + curVal;
}, 0);
console.log(newNums)
|
Nach dem Login kopieren
7. Die foreach-Methode
durchläuft die Elemente des Arrays, was einer for-Schleife entspricht und keinen Rückgabewert hat.
1 2 3 4 5 | console.clear();
var arr = [12,14,34,22,18];
var arr1 = arr.forEach((currentValue, index) => {
console.log(currentValue, index);
})
|
Nach dem Login kopieren
8. Schlüssel, Werte, Eingabemethoden
ES6 bietet drei neue Methoden, Einträge(), Schlüssel() und Werte(), zum Durchlaufen von Arrays. Sie alle geben ein Traverser-Objekt zurück, das mit einer for...of-Schleife durchlaufen werden kann. Der einzige Unterschied besteht darin, dass „keys()“ Schlüsselnamen durchläuft, „values()“ Schlüsselwerte durchläuft und „entrys()“ Schlüsselwerte durchläuft.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | console.clear();
for (let index of ['a', 'b'].keys()) {
console.log(index);
}
for (let elem of ['a', 'b'].values()) {
console.log(elem);
}
for (let [index, elem] of ['a', 'b'].entries()) {
console.log(index, elem);
}
|
Nach dem Login kopieren
9. Statische Methode Array.from
Die Methode Array.from() wird hauptsächlich verwendet, um zwei Arten von Objekten (array-ähnliche Objekte [array-ähnliche Objekte] und durchquerbare Objekte [iterierbar]) in reale Objekte umzuwandeln Array.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | console.clear();
let arrayLike = {
'0': 'a',
'1': 'b',
'2': 'c',
length: 3
}
console.log(Array.from(arrayLike));
let arr = Array.from('w3cplus.com')
console.log(arr);
let namesSet = new Set(['a', 'b'])
let arr2 = Array.from(namesSet);
console.log(arr2);
let m = new Map([[1, 2], [2, 4], [4, 8]]);
console.log(Array.from(m));
var arr = Array.from([1, 2, 3]);
var arr1 = Array.from(arr, (x) => x * x)
console.log(arr1);
var arr2 = Array.from(arr, x => x * x);
console.log(arr2);
var arr3 = Array.from(arr).map(x => x * x);
console.log(arr3);
var arr4 = Array.from({length:5}, (v, i) => i);
console.log(arr4);
let diObj = {
handle: function (n){
return n + 2
}
}
console.log(Array.from(
[1, 2, 3, 4, 5],
function (x){ return this.handle(x)},
diObj
))
|
Nach dem Login kopieren
10. copyWidthin-Methode
Die copyWidthin-Methode kann das Array-Element an der angegebenen Position an andere Positionen innerhalb des aktuellen Arrays kopieren (das ursprüngliche Array-Element wird überschrieben) und dann das aktuelle Array zurückgeben. Durch die Verwendung der Methode copyWidthin wird das aktuelle Array geändert.
copyWidthin akzeptiert drei Parameter [.copyWithin(target, start = 0, end = this.length)]:
target: Dieser Parameter ist erforderlich und das Array-Element wird ab dieser Position ersetzt
start: this Ist ein optionaler Parameter. Der Standardwert ist 0. Wenn es sich um einen negativen Wert handelt, bedeutet dies, dass das Lesen von rechts nach links erfolgt.
Ende: Dies ist ein optionaler Parameter An dieser Position ist das Array-Element standardmäßig gleich Array.length. Wenn es sich um einen negativen Wert handelt, bedeutet dies die reziproke
1 2 3 4 5 | console.clear();
var arr = [1, 2, 3, 4, 5];
var arr = arr.copyWithin(0, 3, 5);
console.log(arr);
|
Nach dem Login kopieren
- 11 Füllmethode
Die Füllmethode füllt ein Array mit dem angegebenen Wert. Diese Methode ist sehr praktisch zum Initialisieren leerer Arrays. Alle vorhandenen Elemente im Array werden gelöscht.
Die Füllmethode kann auch den zweiten und dritten Parameter akzeptieren, mit denen die Start- und Endpositionen des Füllvorgangs angegeben werden. 1 2 3 4 5 6 7 8 9 10 11 12 | console.clear();
var arr = ['a', 'b', 'c',,,];
arr.fill(0, 2, 5);
console.log(arr);
arr.fill(0, 2);
console.log(arr);
arr = new Array(5).fill(0, 0, 3);
console.log(arr);
arr = new Array(5).fill(0, 0, 5);
console.log(arr);
console.log( new Array(3).fill({}));
console.log( new Array(3).fill(1));
|
Nach dem Login kopieren
12. Array-Objektverwendung festlegen
ES6 bietet einen neuen Datenstruktursatz. Es ähnelt einem Array, aber die Werte der Mitglieder sind eindeutig und es gibt keine doppelten Werte.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | console.clear();
var s = new Set();
[2,3,5,4,5,2,2].forEach(x => s.add(x));
console.log(s);
for (let i of s) {console.log(i);}
var set = new Set([1,2,3,4,4]);
console.log([...set]);
var items = new Set([1,2,3,4,5,5,5,5,]);
console.log(items.size);
var set = new Set();
set.add( "a" );
set.add( "b" );
console.log(set);
var s = new Set();
s.add(1).add(2).add(2);
console.log(s.size);
console.log(s.has(1));
console.log(s.has(2));
console.log(s.has(3));
s. delete (2);
console.log(s.has(2));
var items = new Set([1,2,3,4,5]);
var array = Array.from(items);
console.log( array );
var s = new Set([1,2,3]);
s = new Set([...s].map(x => x * 2));
console.log(s);
s = new Set([...s].filter(x => (x % 3) ==0));
console.log(s);
var a = new Set([1,2,3]);
var b = new Set([4,3,2]);
var union = new Set([...a, ...b]);
console.log(union);
var intersect = new Set([...a].filter(x => b.has(x)));
console.log(intersect);
var difference = new Set([...a].filter(x => !b.has(x)));
console.log(difference);
var set1 = new Set([1,2,3]);
set1 = new Set([...set1].map(val => val *2));
console.log(set1);
var set2 = new Set([1,2,3]);
set2 = new Set(Array.from(set2, val => val * 2));
console.log(set2);
|
Nach dem Login kopieren
13. Das Map-Array-Objekt verwendet das
Map-Objekt zum Speichern von Schlüssel-Wert-Paaren und kann sich die ursprüngliche Einfügereihenfolge der Schlüssel merken. Jeder Wert (Objekt oder Grundelement) kann als Schlüssel oder Wert verwendet werden. Als eine Reihe von Schlüssel-Wert-Paarstrukturen verfügt Map über eine extrem schnelle Suchgeschwindigkeit.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | console.clear();
var names = ['Michael', 'Bob', 'Tracy'];
var scores = [95, 75, 85];
var m = new Map([['Michael', 95], ['Bob', 75], ['Tracy', 85]]);
console.log(m.get('Michael'));
var m = new Map();
m.set('Adam', 67);
m.set('Bob', 59);
console.log(m.has('Adam'));
m.get('Adam');
m. delete ('Adam');
console.log(m.get('Adam'));
var m = new Map();
m.set('Adam', 67);
m.set('Adam', 88);
console.log(m.get('Adam'))
|
Nach dem Login kopieren
ES6新版本JavaScript语言给数组添加了许多面向大数据处理的新功能,使得JS在数据处理量和速度方面有了质的提升。需要提示的是,当我们处理的数据量较大时,建议使用Google Chrome浏览器。ES6数组+Chrome浏览器,使得JS在数据处理功能产生变革,完全可以媲美Python或R语言等数据处理软件。
提示:本页中JS脚本代码可复制粘贴到JS代码运行窗口调试体验; 文本编辑快捷键:Ctrl+A - 全选;Ctrl+C - 复制; Ctrl+X - 剪切;Ctrl+V - 粘贴
【推荐学习:javascript高级教程】
Das obige ist der detaillierte Inhalt vonWas sind die Array-Methoden in Javascript es6?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!