Javascript平分分组

时间:2012-06-03 13:17:40

标签: javascript arrays split

我有以下json:

http://pastebin.com/uxpWk2CY

我需要根据浏览器的宽度将其拆分为多个数组。

这是我的javascript:

    var imageArray = jQuery.parseJSON(data);

    var splitArrayInto = jQuery(document).width() / 300;
    splitArrayInto = Math.floor(splitArrayInto);

    var seperateImageArrays = array_fill(0, splitArrayInto);

    for(var i = 0; i < splitArrayInto; i++){
        seperateImageArrays[i % splitArrayInto][i] = imageArray[i];
    }

当我跑步时,我得到了

无法将undefined转换为object

seperateImageArrays [i%splitArrayInto] [i] = imageArray [i];

感谢任何帮助。

编辑: 忘了添加array_fill函数。

//PHP array_fill
function array_fill (start_index, num, mixed_val) {
    var key, tmp_arr = {};

    if (!isNaN(start_index) && !isNaN(num)) {
        for (key = 0; key < num; key++) {
            tmp_arr[(key + start_index)] = mixed_val;
        }
    }

    return tmp_arr;
}

2 个答案:

答案 0 :(得分:2)

当您致电array_fill时,您没有传递第三个参数,因此所有数组元素都设置为undefined ...并且undefined无法取消引用{{ 1}}。

请考虑将[i]作为第三个参数传递。

答案 1 :(得分:0)

由于您使用的是PHPJS中的array_fill,您是否考虑过使用array_chunk?这会将你的大数组分成相同大小的小数组(除了最后一个,如果数字不均匀分配可能会少一些)。