重新调整javascript数组的尺寸(即1x6 => 2x3)[重复]

Posted

技术标签:

【中文标题】重新调整javascript数组的尺寸(即1x6 => 2x3)[重复]【英文标题】:Re-dimensioning javascript arrays (i.e 1x6 => 2x3) [duplicate] 【发布时间】:2019-03-11 20:59:47 【问题描述】:

是否可以使用更高阶的 javascript 函数将单维数组调整为多维数组(即 1x6 到 2x3)或者我是否必须使用 for 循环?

您是否有任何代码示例可以将[0,1,2,3,4,5] 的大小调整为[[0,1,2],[3,4,5]]

【问题讨论】:

似乎没有任何函数可以按照您想要的方式调整数组大小。您需要使用循环,如果您愿意,我可以编写一个包含循环的示例代码。 【参考方案1】:

对于真正的 2D 数组,您可以将其展平并使用生成器通过使用新数组的映射来获取值。

function resize(array, i, j) 
    var gen = array.reduce((a, b) => a.concat(b))[Symbol.iterator]();
    
    return Array.from( length: i , _ => Array.from( length: j , _ => gen.next().value));


console.log(resize([[0, 1, 2, 3, 4, 5]], 2, 3));

【讨论】:

干杯尼娜!!!它真的很好用。非常感谢???【参考方案2】:

使用 Ramda https://ramdajs.com/docs/#splitEvery

R.splitEvery(3, [0,1,2,3,4,5]); //=> [[0,1,2],[3,4,5]]

【讨论】:

这怎么不能回答问题? 可能是因为它没有显示任何代码,而是依靠库来执行一些琐碎的事情。我没有投反对票,但我明白为什么 @mplugjan 是有道理的,但 Nina Scholz 的回答显然不平凡,哈哈 那是因为是妮娜。这更好吗:var i,j,temparray,chunk = 3; for (i=0,j=array.length; i<j; i+=chunk) temparray = array.slice(i,i+chunk); // do whatever 你总是发布非常有效的帖子,但任何菜鸟都无法破译——因为你可以。给你更多的力量。我在上面的评论中发布的骗子的代码更容易阅读,并且效果相同。

以上是关于重新调整javascript数组的尺寸(即1x6 => 2x3)[重复]的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript - 必须刷新页面以显示粒子滑块徽标效果

使用 JavaScript 更改 Highcharts 的高度。默认情况下,仅在窗口重新调整大小时重新调整大小

重新调整尺寸时更改设计集合视图单元格

如何实现窗口尺寸改变,swiper重新初始化尺寸

JavaScript 调整弹出图像尺寸的大小

怎么改照片大小(包括容量大小即KB大小和尺寸大小)?