Heim > Web-Frontend > js-Tutorial > Wie glätte ich ein Javascript-Array?

Wie glätte ich ein Javascript-Array?

亚连
Freigeben: 2018-06-11 14:21:11
Original
2933 Leute haben es durchsucht

Dieser Artikel gibt Ihnen eine detaillierte Analyse der Methode zum Reduzieren von Javascript-Arrays. Freunde, die daran interessiert sind, können es gemeinsam lernen.

Im Entwicklungsprozess stoßen wir manchmal immer 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 bessere Methoden haben, können Sie diese im veröffentlichen 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:

Diese Methode oben Es 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))
Nach dem Login kopieren

Der obige Code verwendet eine neue Funktion von ES6 zum Erweitern des Cloud-Algorithmus „…“, „[…abc,…fff]“ entspricht abc.concat(fff). Diese Verwendung ist intuitiver und klarer und verwendet auch die Reduzierung Verfahren. Reduce ist eine Array-Methode in der Javascript-Sprache.

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.

Ich habe das Obige für Sie zusammengestellt und hoffe, dass es Ihnen in Zukunft hilfreich sein wird.

Verwandte Artikel:

Wie verwende ich js, um eine App in WeChat aufzurufen?

Probleme beim Scrollen in verwandten Bereichen mit CLI+MUI in Vue

Bezahlte Online-Kurse in Vue (ausführliches Tutorial)

Vergleich der Verwendung von Express und Koa (ausführliches Tutorial)

Die erste Verwendung der Stiftinstallationsmethode in Vue (ausführliches Tutorial)

Entwicklung von Warenkomponenten im Vue-Framework

Das obige ist der detaillierte Inhalt vonWie glätte ich ein Javascript-Array?. 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