我有这个简单的JS数组:
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);
我希望能够控制&#34;列的数量&#34; - 或每组方括号的项目,因此myCols
变量。
上面的输出生成正确的方括号序列(之后我添加的换行符):
[
[],
[],
[],
[],
[],
[]
]
我正在努力解决的问题是制定逻辑,用数组中的项目序列填充每组方括号。
任何建议都非常感谢。
由于
答案 0 :(得分:1)
试试这个:
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));