Je découpe 3 éléments d'un tableau et je les stocke dans un autre tableau.
array = [1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1];
rows = 3;
Voici ma méthode
getVertWallStruct = (array, rows) => {
let i = 1,
storageArr = [],
data = [];
for (let k = 0; k < rows*2; k++) { // everything's ok here
storageArr.push(array.slice(k*rows, (k+1)*rows));
}
data = storageArr;
console.log("storageArr - ", storageArr, " , array - ", array, " , data - ", data);
return data;
}
Dans ce cas, storageArr sera composé de tableaux vides (en ce qui concerne les données). Mais lorsque je supprime la ligne avec données = storageArr ; J'ai compris :
storageArr = [ //storageArr should look like this in the end
[1, 1, 1],
[0, 1, 1],
[1, 1, 1],
[1, 1, 1],
[0, 1, 1],
[1, 1, 1]
]
Pourquoi est-ce que je perds des valeurs ?
Mise à jour : Même lorsque j'ai copié-collé le code d'une des réponses - la méthode retourne vacío données. Pourquoi ?
Le code ressemble :
getVertWallStruct = (array, rows) => {
console.log(array, rows); //okay here
let iterator = array.values()
let out = []
for (let i = 0;i < ~~(array.length / rows); i++){
out.push([iterator.next().value, iterator.next().value, iterator.next().value])
}
console.log(out); //empty ???
return out;
}