【问题标题】:How would i create n no of chunks from an array of dynamic length javascript我如何从动态长度的javascript数组中创建n个块
【发布时间】:2019-02-06 12:12:11
【问题描述】:

我有一个 n 长度(动态) 的数组,比如 830... 我希望这个数组以 [0,100],[100,200] 的方式拆分为子数组.....[800,829] 即相同的块数 我将如何执行此操作??

到目前为止,我已经参考this answer尝试了以下代码

var i,j,chunk = 10;
for (i=0,j=array.length; i<j; i+=chunk) {
    temparray = array.slice(i,i+chunk);
 }

但如前所述,我的 数组将是动态的,即如果为 380,则为动态长度。如果不是。一个块的大小是 100 然后必须在最后返回 80

【问题讨论】:

  • 你能发布一些你迄今为止尝试过的例子吗?
  • 如果你使用“lodash”,你可以使用它的chunk方法。
  • Split array into chunks的可能重复

标签: javascript arrays splice array-splice


【解决方案1】:

你可以试试这个

function chunk(orig) {
  var n = Math.floor(orig.length / 100);
  var evenChunks = new Array(n).fill(0).reduce((agg, curr, index) => {
    agg.push(orig.splice(0, 100))
    return agg;
  }, []);

  return [].concat(evenChunks, [ orig ]);
}

然后你可以打电话,

chunk(new Array(830).fill(0))

【讨论】:

    猜你喜欢
    • 2011-10-07
    • 2019-08-10
    • 2014-04-19
    • 1970-01-01
    • 2020-01-26
    • 1970-01-01
    • 2016-04-30
    • 2021-12-22
    • 2012-08-02
    相关资源
    最近更新 更多