Heim > Web-Frontend > H5-Tutorial > Was sind die Unterschiede zwischen den JavaScript-Methoden für Arrays?

Was sind die Unterschiede zwischen den JavaScript-Methoden für Arrays?

php中世界最好的语言
Freigeben: 2017-11-18 17:39:42
Original
2049 Leute haben es durchsucht

In JavaScript gibt es viele Methoden zum Hinzufügen, Entfernen und Ersetzen von Array-Elementen, aber sie sind sehr unterschiedlich. Was ist das Geheimnis der Array-Methode?

JavaScript bietet eine Vielzahl von Methoden zum Hinzufügen, Entfernen und Ersetzen von Array-Elementen, aber einige wirken sich auf das ursprüngliche Array aus, andere nicht, und sie erstellen ein neues Array.

Hinweis: Unterscheiden Sie die Unterschiede zwischen den folgenden beiden Methoden:

array.splice() wirkt sich auf das ursprüngliche Array aus

array.slice() wirkt sich nicht auf das ursprüngliche Array aus


Neu: Auswirkungen auf das ursprüngliche Array

Die Verwendung von array.push() und array.ushift() zum Hinzufügen neuer Elemente wirkt sich auf das ursprüngliche Array aus.

let mutatingAdd = ['a', 'b', 'c', 'd', 'e'];
mutatingAdd.push('f'); // ['a', 'b', 'c', 'd', 'e', 'f']
mutatingAdd.unshift('z'); // ['z', 'b', 'c', 'd', 'e' 'f']
Nach dem Login kopieren

Neu: Hat keinen Einfluss auf das ursprüngliche Array

Zwei Möglichkeiten zum Hinzufügen von Elementen haben keinen Einfluss auf das ursprüngliche Array, die erste ist array.concat().

const arr1 = ['a', 'b', 'c', 'd', 'e'];
const arr2 = arr1.concat('f'); // ['a', 'b', 'c', 'd', 'e', 'f']  (注:原文有误,我做了修改 “.” ---> “,”)
console.log(arr1); // ['a', 'b', 'c', 'd', 'e']
Nach dem Login kopieren

Die zweite Methode besteht darin, den Spread-Operator von JavaScript zu verwenden. Der Spread-Operator besteht aus drei Punkten (…)

const arr1 = ['a', 'b', 'c', 'd', 'e'];
const arr2 = [...arr1, 'f']; // ['a', 'b', 'c', 'd', 'e', 'f']  
const arr3 = ['z', ...arr1]; // ['z', 'a', 'b', 'c', 'd', 'e']
Nach dem Login kopieren

Der Spread-Operator kopiert das ursprüngliche Array und übernimmt alle Elemente daraus das ursprüngliche Array und speichern Sie sie in der neuen Umgebung.


III. Entfernen: Auswirkungen auf das ursprüngliche Array

Wenn array.pop() und array.shift() zum Entfernen von Array-Elementen verwendet werden, wird das Original entfernt Array wird betroffen sein.

let mutatingRemove = ['a', 'b', 'c', 'd', 'e'];  
mutatingRemove.pop(); // ['a', 'b', 'c', 'd']  
mutatingRemove.shift(); // ['b', 'c', 'd']
Nach dem Login kopieren

array.pop() und array.shift() geben das entfernte Element zurück. Sie können das entfernte Element über eine Variable abrufen.

let mutatingRemove = ['a', 'b', 'c', 'd', 'e'];
const returnedValue1 = mutatingRemove.pop();  
console.log(mutatingRemove); // ['a', 'b', 'c', 'd']  
console.log(returnedValue1); // 'e'
const returnedValue2 = mutatingRemove.shift();  
console.log(mutatingRemove); // ['b', 'c', 'd']  
console.log(returnedValue2); // 'a'
Nach dem Login kopieren

array.splice() kann auch Elemente eines Arrays löschen.

let mutatingRemove = ['a', 'b', 'c', 'd', 'e'];  
mutatingRemove.splice(0, 2); // ['c', 'd', 'e']
Nach dem Login kopieren

Wie array.pop() und array.shift() gibt auch array.splice() die entfernten Elemente zurück.

let mutatingRemove = ['a', 'b', 'c', 'd', 'e'];  
let returnedItems = mutatingRemove.splice(0, 2);  
console.log(mutatingRemove); // ['c', 'd', 'e']  
console.log(returnedItems) // ['a', 'b']
Nach dem Login kopieren

IV. Entfernung: Hat keinen Einfluss auf das ursprüngliche Array

JavaScript 的 array.filter() 方法基于原数组创建一个新数组,新数组仅包含匹配特定条件的元素。
const arr1 = ['a', 'b', 'c', 'd', 'e'];
const arr2 = arr1.filter(a => a !== 'e'); // ['a', 'b', 'c', 'd'](注:原文有误,我做了修改)  
// 或者
const arr2 = arr1.filter(a => {  
  return a !== 'e';
}); // ['a', 'b', 'c', 'd'](注:原文有误,我做了修改)
Nach dem Login kopieren

Die Bedingung des obigen Codes ist „ungleich ‚e‘“, daher ist das neue Array (arr2 ) enthält kein „e“.

Die Einzigartigkeit von Pfeilfunktionen:

Einzeilige Pfeilfunktion, das Schlüsselwort „return“ ist standardmäßig enthalten und muss nicht manuell geschrieben werden.

Mehrzeilige Pfeilfunktionen müssen jedoch explizit einen Wert zurückgeben.

Eine andere Möglichkeit, dies zu tun, ohne das ursprüngliche Array zu beeinträchtigen, ist array.slice() (nicht zu verwechseln mit array.splice()).

const arr1 = ['a', 'b', 'c', 'd', 'e'];  
const arr2 = arr1.slice(1, 5) // ['b', 'c', 'd', 'e']  
const arr3 = arr1.slice(2) // ['c', 'd', 'e']
Nach dem Login kopieren

V. Ersetzung: wirkt sich auf das ursprüngliche Array aus

Wenn Sie wissen, welches Element ersetzt werden soll, können Sie array.splice() verwenden.

let mutatingReplace = ['a', 'b', 'c', 'd', 'e'];  
mutatingReplace.splice(2, 1, 30); // ['a', 'b', 30, 'd', 'e']  
// 或者
mutatingReplace.splice(2, 1, 30, 31); // ['a', 'b', 30, 31, 'd', 'e']
Nach dem Login kopieren

Ersetzung: Hat keinen Einfluss auf das ursprüngliche Array

Sie können array.map() verwenden, um ein neues Array zu erstellen, und Sie können jedes Element überprüfen und entsprechend ersetzen spezifische Bedingungen.

const arr1 = ['a', 'b', 'c', 'd', 'e']  
const arr2 = arr1.map(item => {  
  if(item === 'c') {
    item = 'CAT';
  }
  return item;
}); // ['a', 'b', 'CAT', 'd', 'e']
Nach dem Login kopieren

Verwenden Sie array.map() zum Transformieren von Daten

array.map() ist eine leistungsstarke Methode, mit der Daten transformiert werden können, ohne die ursprüngliche Datenquelle zu verschmutzen.

const origArr = ['a', 'b', 'c', 'd', 'e'];  
const transformedArr = origArr.map(n => n + 'Hi!'); // ['aHi!', 'bHi!', 'cHi!', 'dHi!', 'eHi!']  
console.log(origArr); // ['a', 'b', 'c', 'd', 'e']; // 原数组毫发无损
Nach dem Login kopieren

Es gibt so viele Vergleiche über Array-Methoden, ich hoffe, dass sie jedem helfen können, Arrays in JS zu verstehen und zu verwenden.


Verwandte Lektüre:

Über JS-Array-Array-Methodenzusammenfassung

JS-Array-Deduplizierungsmethode Zusammenfassung

Analyse der Parameterübergabemethode des AngularJS-Arrays

Das obige ist der detaillierte Inhalt vonWas sind die Unterschiede zwischen den JavaScript-Methoden für Arrays?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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