以下是我的阵列,我需要打破部分,即分成2部分,如下所示 -
要迭代的数组 -
[
{elem: 1},
{elem: 2},
{elem: 3},
{elem: 4},
{elem: 5},
{elem: 6},
{elem: 7},
{elem: 8},
{elem: 9}
]
所需的输出 -
[
{week1: [{elem: 1},{elem: 2}]},
{week2: [{elem: 3},{elem: 4}]},
{week3: [{elem: 5},{elem: 6}]},
{week4: [{elem: 7},{elem: 8}]},
{week5: [{elem: 9}]},
]
以下是我正在尝试的代码,但不知何故,让我知道我在这里做错了什么 -
我的代码 -
var myArr = [
{elem: 1},
{elem: 2},
{elem: 3},
{elem: 4},
{elem: 5},
{elem: 6},
{elem: 7},
{elem: 8},
{elem: 9}
];
var arrayBreakNum = 2;
var newArr = [];
var weekNum = 1;
for(var i=1; i<= myArr.length; i++) {
newArr.['week'+weekNum].push(myArr[i]);
if(i%2 == 0)
weekNum = weekNum + 1;
}
console.log(newArr);
答案 0 :(得分:3)
您需要更改一些内容:
这里有一个语法错误:
newArr.['week'+weekNum].push(myArr[i]);
更改为:
newArr['week'+weekNum].push(myArr[i]);
您正在尝试推送到尚未在此处初始化的阵列:
newArr.['week'+weekNum].push(myArr[i]);
更改为:
newArr['week'+weekNum] = [];
for(var i=1; i<= myArr.length; i++) {
newArr['week'+weekNum].push(myArr[i]);
if(i%2 == 0){
weekNum = weekNum + 1;
newArr['week'+weekNum] = [];
}
}
答案 1 :(得分:1)
var myArr = [
{elem: 1},
{elem: 2},
{elem: 3},
{elem: 4},
{elem: 5},
{elem: 6},
{elem: 7},
{elem: 8},
{elem: 9}
];
var arrayBreakNum = 2;
var newArr = [];
var weekNum = 1;
for(var i=1; i<= myArr.length; i++) {
//you need to create an empty array
if(!newArr['week'+weekNum]) {
newArr['week'+weekNum] = [];
}
newArr['week'+weekNum].push(myArr[i]); //you had an unessecary . in this line
if(i%2 == 0) {
weekNum = weekNum + 1;
}
}
console.log(newArr);