javascript - 如何在 Javascript 中的某个限制后打破数组

标签 javascript arrays loops

以下是我需要拆分的数组,即拆分为 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);

最佳答案

您需要更改一些内容:


这里有一个语法错误:

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] = [];
    }
}

工作示例: http://jsfiddle.net/6e6d3fuv/

关于javascript - 如何在 Javascript 中的某个限制后打破数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33941330/

相关文章:

javascript - 用 jQuery 替换相同结构中的不同单词

javascript - 使用 JavaScript 将 HTML 表导出到 CSV 时保留前导零

java - C++ vs Java 速度(带算术的循环)

java - 如何在数组中使用 toString

java - 在 for 循环 Java 中创建不断变化的数字序列?

html - 表、TR各2循环、PHP、HTML

refactoring - Javascript 重构通常称为函数

javascript - 从控件中检索 id 以在导航中使用

Java:编写一个简单的迷宫游戏

javascript返回数组不起作用