Maison  >  Article  >  interface Web  >  Comment aplatir un tableau javascript ?

Comment aplatir un tableau javascript ?

亚连
亚连original
2018-06-11 14:21:112884parcourir

Cet article vous donne une analyse détaillée de la méthode d'aplatissement des tableaux javascript. Les amis qui sont intéressés par cela peuvent l'apprendre ensemble.

Dans le processus de développement, nous rencontrons parfois toujours des problèmes courants, tels que l'aplatissement d'un tableau bidimensionnel en un tableau unidimensionnel, ou l'aplatissement d'un tableau tridimensionnel en un tableau unidimensionnel. Ces problèmes seront toujours repensés lorsqu’ils seront rencontrés, il est donc préférable de les affiner et de les résumer.

L'auteur ci-dessous vous montrera deux méthodes pour aplatir un tableau multidimensionnel en un tableau unidimensionnel. Cela peut être considéré comme un point de départ. Si vous avez de meilleures méthodes, vous pouvez les publier dans le fichier. zone de messages.

La première méthode est un traitement récursif. Le code est le suivant :

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

Le résultat de l'exécution est :

Ce qui précède et cette méthode est tout à fait satisfaisante. Veuillez consulter les commentaires pour une explication détaillée du code. La méthode suivante utilise quelques nouvelles fonctionnalités du langage JavaScript. Le code est le suivant :

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

Le code ci-dessus. utilise une nouvelle fonctionnalité d'ES6 pour étendre l'algorithme cloud ..", "[...abc,...fff]" est équivalent à abc.concat(fff). Cette utilisation est plus intuitive et claire, et la réduction méthode est utilisée. réduire est une méthode de tableau en langage javascript.

Lors de l'appel de la méthode recduce sur un tableau, vous pouvez passer deux paramètres. Le premier paramètre est la fonction de rappel et le deuxième paramètre est une valeur initiale. Deux paramètres doivent être passés dans la fonction de rappel. Le premier paramètre est la valeur de retour de chaque exécution de la fonction, et le deuxième paramètre est la valeur du tableau correspondant à l'index actuel. Le deuxième paramètre de réduire peut être omis. S'il est omis, les paramètres du premier appel de la fonction de rappel sont les valeurs des premier et deuxième éléments du tableau. S'il n'est pas omis, le premier paramètre de la fonction de rappel. est cette valeur initiale. Dans l'exemple ci-dessus, le deuxième paramètre de réduire est défini sur un tableau vide.

J'ai compilé ce qui précède pour vous, j'espère que cela vous sera utile à l'avenir.

Articles connexes :

Comment utiliser js pour invoquer une application dans WeChat ?

Problèmes de défilement de zone liés à l'utilisation de cli+mui dans Vue

Cours payants en ligne dans vue (tutoriel détaillé)

Comparaison de l'utilisation d'express et koa (tutoriel détaillé)

La première fois que vous utilisez la méthode d'installation du stylet dans vue (tutoriel détaillé)

Développement de composants de biens dans le framework Vue

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn