通过[未知整数]集迭代数组

时间:2017-12-21 02:49:53

标签: javascript arrays

假设我有一个大于0的整数n和一个这样的数组:

var array = [1, 2, 5, 6, 8, 9, 12, 13, 17...] //random values

我如何迭代这个数组,一次获取值n(并将其放入2D数组中)?

例如,如果n为3,我希望返回值为

[[1, 2, 5], [6, 8, 9], [12, 13, 17]...]

代码就像这样:

var array = [];
for (var i = 0; i < array.length; i += 3) {
    var first = array[i];
    var second = array[i+1];
    var third = array[i+2];

    array.push([
        first, second, third
    ]);
}

问题在于我有固定值来获取我的对象(ii+1等。)

如果我有一个未知的整数,那么向右递增到n将不起作用。

我将如何实现这一目标?

1 个答案:

答案 0 :(得分:1)

使用slice获取块并浏览数组:

const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15];

const partition = (n, arr) => {
  const result = [];
  let i = 0;
  
  while(i < arr.length) {
    result.push(arr.slice(i, i + n));
    i = i + n;
  }
  
  return result;
};

console.log(partition(1, arr));
console.log(partition(2, arr));
console.log(partition(3, arr));
console.log(partition(4, arr));