我试图将一个数组并将其拆分为长度为4的部分,然后将这些部分推入新的数组中。我写了一些小脚本来解决这个问题,但我对其他人如何解决这个问题感到好奇。有没有比我正在做的更好的方法?
var test = ['test0', 'test1', 'test2', 'test3', 'test4', 'test5', 'test6', 'test7' ];
var splitTest = test.map(function(value, index) {
if (index % 4 === 0) {
return ([test[index], test[index + 1], test[index + 2], test[index+3]]);
}
}).filter(function(value) {
return typeof value != 'undefined';
});
这是我的代码的jsbin:https ://jsbin.com/zubavivoto/edit?js,控制台
输入
["test0", "test1", "test2", "test3", "test4", "test5", "test6", "test7"]
输出
[["test0", "test1", "test2", "test3"], ["test4", "test5", "test6", "test7"]]
我喜欢@JosephYoung的方法,但是如果您想继续使用功能性方法,可以使用reduce
。
var test = ['test0', 'test1', 'test2', 'test3', 'test4', 'test5', 'test6', 'test7' ];
var splitTest = test.reduce(function(prev, current, index) {
if (index % 4 === 0) {
prev.push([current]);
} else {
prev[prev.length - 1].push(current);
}
return prev;
}, []);
约瑟夫的迭代方法将更快。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句