Im Entwicklungsprozess stoßen wir manchmal auf einige häufige Probleme, z. B. die Reduzierung eines zweidimensionalen Arrays in ein eindimensionales Array oder die Reduzierung eines dreidimensionalen Arrays in ein eindimensionales Array. Diese Probleme werden immer neu überdacht, wenn sie auftreten. Daher ist es besser, sie zu verfeinern und zusammenzufassen.
Der Autor unten zeigt Ihnen zwei Methoden zum Reduzieren eines mehrdimensionalen Arrays in ein eindimensionales Array. Wenn Sie eine bessere Methode haben, können Sie dies tun poste es im Nachrichtenbereich.
Zuerst ist die erste Methode, rekursive Verarbeitung, der Code lautet wie folgt:
var arr = [1, 2, 3, [3, 3, 3, [5, 4, 5, 6, 6, 7, 8]], [333, 4444] ]; function product() { // 1、创建一个空数组, var newarr = []; ///2、并且返回一个函数,函数参数为要拍平的数组 return function flatten(arr) { // 3、循环数组,判断每一项,不为输的话将其塞入newarr // 若为数组,递归调用 faltten,并将结果与newarr合并 for (var t of arr) { if (!Array.isArray(t)) { newarr.push(t); } else { newarr.concat(flatten(t)) } } return newarr } } var flatten = product(); console.log(flatten(arr))
Das Ausführungsergebnis ist:
Die obige Methode ist recht zufriedenstellend. Eine detaillierte Erklärung des Codes finden Sie in der folgenden Methode. Der Code lautet wie folgt 🎜>
var arr = [1, 2, 3, [3, 3, 3, [5, 4, 5, 6, 6, 7, 8]], [333, 4444] ]; function flatten(arr){ return arr.reduce(function(pre,cur){ if(!Array.isArray(cur)){ return [...pre,cur]; }else{ return [...pre,...flatten(cur)] } },[]) } console.log(flatten(arr))
Wenn Sie die Recduce-Methode für ein Array aufrufen, können Sie zwei Parameter übergeben. Der erste Parameter ist die Rückruffunktion und der zweite Parameter ist ein Anfangswert. In der Rückruffunktion müssen zwei Parameter übergeben werden. Der erste Parameter ist der Rückgabewert jeder Ausführung der Funktion und der zweite Parameter ist der Wert des Arrays, der dem aktuellen Index entspricht. Der zweite Parameter von Reduce kann weggelassen werden. Wenn er weggelassen wird, sind die Parameter des ersten Aufrufs der Rückruffunktion die Werte des ersten und zweiten Elements des Arrays. Wenn er nicht weggelassen wird, ist er der erste Parameter der Rückruffunktion ist dieser Anfangswert. Im obigen Beispiel ist der zweite Parameter von Reduce auf ein leeres Array gesetzt.
Dokumentadresse reduzieren: https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce
Im Vergleich zum ersten Das erste ist leichter zu verstehen, während die Schwierigkeit der zweiten in der Verwendung und dem Verständnis der Reduzierungsfunktion liegt.
Verwandte Empfehlungen:
php-Methode zum Finden der Palindromzahl in einem Bereich und die Quadratwurzel ist ebenfalls eine Palindromzahl JavaScript basiert auf der Newton-Iteration. Beispielanalyse, wie man die Quadratwurzel einer Gleitkommazahl findet.Über das Quadratwurzelproblem in PHPDas obige ist der detaillierte Inhalt vonDie JavaScript-Array-Flattening-Methode wird ausführlich erläutert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!