Javascript 以n个项目的块在数组中循环
我有一个简单的JS数组:Javascript 以n个项目的块在数组中循环,javascript,arrays,Javascript,Arrays,我有一个简单的JS数组: var myStringArray = ['item1','item2','item3','item4','item5','item6','item7','item8','item9','item10','item11','item12','item13','item14','item15','item16','item17']; 我想格式化数组中的数据,使其如下所示: [ ["item1","item2","item3"], ["item4","it
var myStringArray = ['item1','item2','item3','item4','item5','item6','item7','item8','item9','item10','item11','item12','item13','item14','item15','item16','item17'];
我想格式化数组中的数据,使其如下所示:
[
["item1","item2","item3"],
["item4","item5","item6"],
["item7","item8","item9"],
["item10","item11","item12"],
["item13","item14","item15"],
["item16","item17"]
]
换行并不重要,但这正是我想要达到的格式
我已经做到了这一点:
var myCols = 3;
var myStringArray = ['item1','item2','item3','item4','item5','item6','item7','item8','item9','item10','item11','item12','item13','item14','item15','item16','item17'];
var arrLen = myStringArray.length;
var output = "[";
for (var i=0, l=myStringArray.length; i<l; i++) {
var this_loop = i+1;
var this_item = myStringArray[i];
var this_mod = (i % myCols) + 1;
console.log(this_item + '__' + i + '______' + this_mod);
if (this_mod == 1) {
output += '[';
}
if (this_mod == 3 && this_loop < arrLen) {
output += '],';
}
if (this_loop === arrLen) {
output += ']';
}
}
output += ']';
console.log (myStringArray);
console.log (arrLen);
console.log (output);
我正在努力解决的问题是用数组中的项目序列填充每组方括号的逻辑
非常感谢您的建议
谢谢试试这个:
var newArr = [];
var myStringArray = ['item1','item2','item3','item4','item5','item6','item7','item8','item9','item10','item11','item12','item13','item14','item15','item16','item17'];
for (var i = 0; i < myStringArray.length; i+=3) {
newArr.push(
myStringArray.slice(i, i+3)
);
}
console.log(JSON.stringify(newArr, null, 4));
谢谢-对不起-在我问这个问题之前,我应该已经知道要搜索什么了。
var newArr = [];
var myStringArray = ['item1','item2','item3','item4','item5','item6','item7','item8','item9','item10','item11','item12','item13','item14','item15','item16','item17'];
for (var i = 0; i < myStringArray.length; i+=3) {
newArr.push(
myStringArray.slice(i, i+3)
);
}
console.log(JSON.stringify(newArr, null, 4));