重新调整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 - 必须刷新页面以显示粒子滑块徽标效果