我正在尝试取一个数组并将其拆分为长度为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,console
输入
["test0", "test1", "test2", "test3", "test4", "test5", "test6", "test7"]
输出
[["test0", "test1", "test2", "test3"], ["test4", "test5", "test6", "test7"]]
答案 0 :(得分:7)
它不是那么有用,但能完成工作
<!-- ANDROID PERMISSIONS -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
答案 1 :(得分:3)
我喜欢@ 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;
}, []);
但是,约瑟夫的迭代方法会更快。