0
votes

Diviser un tableau avec une taille spécifique des morceaux

Par exemple, j'ai un tableau de morceaux, cette matrice a la taille des morceaux individuels.

[1,2,3],[1,2,3] and the second [1,2,3],[1,2],[1,2,3]


0 commentaires

3 Réponses :


6
votes

Le problème est que votre tranche commence toujours au même index (0).

Utilisez une variable (comme i code>) que vous augmentez au fur et à mesure que vous prenez des morceaux: p>

p>

let example = [3,2,3];
let auxarrayindex = [1,2,3,4,5,6,7,8];

let i = 0;
let finalauxarray = example.map(size => auxarrayindex.slice(i, i+=size));

console.log(finalauxarray);


1 commentaires

Merci!! une méthode simple



2
votes

Exemple de travail Utilisation de Splice Code> au lieu de SLICE CODE> Comme je pense qu'il offre une API légèrement nettoyeuse pour ce cas d'utilisation particulière:

P>

let example = [3, 3];
let auxArrayIndex = [1, 2, 3, 4, 5, 6];
let example2 = [3, 2, 3];
let auxArrayIndex2 = [1, 2, 3, 4, 5, 6, 7, 8];

function getChunks(chunkSizes, array) {
  let result = [];
  for (let chunkSize of chunkSizes) {
    result.push(array.splice(0, chunkSize));
  }
  return result;
}

let chunks = getChunks(example, auxArrayIndex);
let chunks2 = getChunks(example2, auxArrayIndex2);

console.log(chunks); // logs "[1,2,3], [4,5,6]"
console.log(chunks2); // logs "[1,2,3], [4,5], [6,7,8]"


0 commentaires

3
votes

Le problème est dû aux paramètres de la tranche. Vous pouvez en apprendre davantage sur la manière dont Slice fonctionne sur ce lien

https://www.w3schools.com/jsref/jsref_slice_array.asp

Il faut comme premier paramètre la position Starti G et le dernier paramètre de la position de fin qui n'est pas incluse dans le résultat

Vous pouvez aussi utiliser l'épissure pour cela aussi https://www.w3schools.com/jsref/jsref_splice.asp

espère que cela aide


0 commentaires