从数组[5000]中获取X数字到数组[]中

时间:2015-04-14 19:26:56

标签: javascript arrays loops

我有一个这样的数组:

 arrayA = [1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9,1,2];

我需要在这样的组中分隔数字:

arrayB = [1234,5678,9123,4567,8912];

正如您所看到的那样arrayA,但是现在是新数字的4个值组。

我能够使用这样的bug:arrayB=[undefined1234,undefined5678]; 使用此代码:

for (var i = 0; i < 20; i++) {
        if (i/4== n+1){
            arrayB[n] = temp;
            n++;
        }
         temp += arrayA[i];
}

就是这样。我理解这个错误,是因为+=,但我不确定如何以其他方式执行此操作。

3 个答案:

答案 0 :(得分:1)

此代码将执行该操作

        var arrayA = [1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2,3,4];
        var arrayB = [];
        for (var x = 0; x < arrayA.length; x += 4) {
           arrayB.push(arrayA.slice(x, x + 4).join(''));
        }

        console.log(arrayB);  

<强>更新
米莉提出了一个公平的观点。如果您需要结果数组中的数字,请在for循环

中使用以下语句
arrayB.push(parseInt(arrayA.slice(x, x + 4).join('')));

答案 1 :(得分:0)

尝试在循环开始之前和每次分配到temp之后将arrayB设置为“”(当您进行分配时,将step中的字符串转换为整数)。在arrayB循环结束后,您可能需要对for进行最终分配。

答案 2 :(得分:0)

我会这样做:

arrayA = [1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2];
temp = arrayA.join('');

count = 4;

grouped = [];

max = temp.length / count;

for (i = 0; i < max; i++) {

  grouped.push(parseInt(temp.substr(i * 4, 4)));

}

console.log(grouped);

少数字符串转换和返回数字。 :) 演示:http://jsfiddle.net/hue0a1wb/