Heim > Web-Frontend > js-Tutorial > Die JavaScript-Array-Flattening-Methode wird ausführlich erläutert

Die JavaScript-Array-Flattening-Methode wird ausführlich erläutert

小云云
Freigeben: 2018-01-24 10:00:22
Original
1829 Leute haben es durchsucht

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))
Nach dem Login kopieren

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 🎜>


Der obige Code verwendet eine neue Funktion von ES6, um den Cloud-Algorithmus „…“ zu erweitern, dessen Funktion „[...abc,...fff]“ ist Äquivalent zu abc.concat (fff), diese Verwendung ist intuitiver und klarer und verwendet die Reduzierungsmethode. Reduce ist eine Array-Methode in der Javascript-Sprache.
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))
Nach dem Login kopieren

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 PHP

Das 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!

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