1
votes

Boucle à travers un tableau multidimensionnel pour itérer chaque élément en javascript

comment puis-je faire une boucle pour parcourir chaque élément console.log, Je souhaite effectuer une itération uniquement pour une boucle c'est le tableau

let array = [
    [1,2,3],
    [4,5,6],
    [7,8,9],
    [[10,11,12],13,14],
    [[15,16,16],[17,18,[19,20]]]
];


2 commentaires

Comment essayez-vous de l'itérer.? Il est préférable de montrer ce que vous avez accompli et où vous êtes resté coincé.


let array = [[1,2,3], [4,5,6], [7,8,9], [[10,11,12], 13,14], [[15,16,16] , [17,18, [19,20]]]] for (let i = 0; i


3 Réponses :


0
votes

Vous auriez besoin d'une boucle imbriquée. JavaScript a différentes manières de faire cela. Voici un exemple suivant la programmation fonctionnelle:

array.forEach(function (outer) {
    outer.forEach(function (inner) {
        console.log(inner)
    })
});

Puisque vous avez un tableau profondément imbriqué, vous pouvez également vouloir flat d'abord.


0 commentaires

0
votes

Vous pouvez essayer quelque chose comme ça?

Cette fonction devrait consigner dans la console tous les éléments du tableau et tous les sous-tableaux.

// using Array.forEach
const recursiveLoop1 = (elem) => {
  if (Array.isArray(elem)) {
    elem.forEach((innerElem) => {
      recursiveLoop1(innerElem)
    })
  } else {
    console.log(elem)
  }
}

// using classic for-loop
const recursiveLoop2 = (elem) => {
  if (Array.isArray(elem)) {
    for (let i = 0; i < elem.length; i++) {
      recursiveLoop2(elem[i])
    }
  } else {
    console.log(elem)
  }
}

let array = [
  [1,2,3],
  [4,5,6],
  [7,8,9],
  [[10,11,12],13,14],
  [[15,16,16],[17,18,[19,20]]]
];

recursiveLoop1(array);
recursiveLoop2(array);


2 commentaires

J'ai besoin de faire une boucle jusqu'à l'itération de chaque élément


@Robiul J'ai mis à jour la réponse avec une fonction récursive qui utilise une boucle for standard, est-ce utile?



0
votes

Obtenez un tableau plat et effectuez une itération pour une sortie.

const show = v => {
        if (Array.isArray(v)) v.forEach(show);
        else console.log(v);
    };

let array = [[1, 2, 3], [4, 5, 6], [7, 8, 9], [[10, 11, 12], 13, 14], [[15, 16, 16], [17, 18, [19, 20]]]];

array.forEach(show);

Une approche plus classique avec un rappel récursif.

let array = [[1, 2, 3], [4, 5, 6], [7, 8, 9], [[10, 11, 12], 13, 14], [[15, 16, 16], [17, 18, [19, 20]]]];

array
    .flat(Infinity)
    .forEach(v => console.log(v));


1 commentaires

J'ai besoin d'une boucle pour itérer toutes choses