0
votes

Diviser le tableau en de nombreux compartiments où chaque banarraire est de longueur de morceau de morceau de longueur

J'essaie de diviser un tableau en sous-bras la base sur la longueur de la taille donnée, je l'ai presque obtenu mais le résultat a un problème.

[[ 1, 2], [3, 4]]


0 commentaires

4 Réponses :


0
votes

Vous sautez des indices à l'aide de i + = taille code> (dans votre cas, 2 code> est livré après 0 code> donc élément d'index 1 code> reste non défini code>), utilisez un tableau [] [] code> et poussant code>:

p>

function chunks(array, size) {
  var chunk = [];
  
  for (let i = 0, j = 0; i < array.length; i += size, j++) {
    chunk[j] = array.slice(i, i + size);
  }
  
  return chunk;
}

console.log(chunks([1, 2, 3, 4], 2))


0 commentaires

0
votes

function chunks(array, size) {

  var chunk = new Array(Math.floor(array.length / size));
  var counter = -1;

  for (let i = 0; i < array.length; i += size) {

    chunk[++counter] = array.slice(i, i + size);
  }

  return chunk;
}

console.log(chunks([1, 2, 3, 4], 2))


0 commentaires

0
votes

function chunks(array, size) {

  var chunk = new Array(size);
  var index = 0;  // current index where we are going to insert value
  for (let i = 0; i <array.length; i+=size) {

    chunk[index] = array.slice(i,i+size);
    index++;
    // or you can do chunk.push(array.slice(i,i+size)); in one line
  }

  return chunk;
}

console.log(chunks([1, 2, 3, 4], 2))


0 commentaires

0
votes
function chunks(array, size) {
  if (!array.length || !parseInt(size)) {
    return array;
  }
  const isNeedOneMore = array.length % size > 0 ? 1 : 0;
  let chunksLength = (parseInt(array.length / size) + isNeedOneMore);
  let chunks = [];
  while (chunksLength > 0) {
    let chunk = [];
    let s = size;
    while (s > 0 && array.length > 0) {
      chunk.push(array.shift());
      s--;
    }
    chunks.push(chunk);
    chunksLength--;
  }
  return chunks;
}

console.log(chunks([1, 2, 3, 4], 2));

0 commentaires