求教一个多维数组方法

有一个数组[{}{}{}{}{}{}{}{}]
我想把其中的对象每四个分为一个数组
[{}{}{}{}]
请问如何操作

阅读 2.4k
3 个回答
function group(list, length) {
  var i = 0;
  var res = [];
  while(i<list.length) {
    res.push( list.slice(i, i += length) )
  }
  return res;
}

image.png

这样?

[{}, {}, {}, {}, {}, {}, {}, {}].reduce((acc, cur, idx, src) => {
    if (idx === 0) {
        acc = [[cur]];
    } else if (idx % 4 === 0) {
        acc.push([cur]);
    } else {
        acc[acc.length - 1].push(cur);
    }

    return acc;
}, 0);

笨方法 for 循环也行。

如果不考虑写过多复杂的代码,可以直接引用lodash,它的chunk专门干这个的。

console.log(JSON.stringify(_.chunk([{},{},{},{},{},{},{}], 4)))
//输出:[[{},{},{},{}],[{},{},{}]]
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题