1

我有以下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];
    }

当我运行它时,我得到

无法将未定义转换为对象

单独的ImageArrays[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;
}
4

2 回答 2

3

当您调用时,array_fill您没有传递第三个参数,因此您的所有数组元素都设置为undefined... 并且undefined不能使用[i].

[]考虑改为作为第三个参数传递。

于 2012-06-03T13:48:43.320 回答
0

由于您使用array_fill的是 PHPJS,您是否考虑过使用array_chunk?这会将您的大数组分成大小相等的较小数组(最后一个除外,如果数字不均分,它可能会更少)。

于 2012-06-03T13:54:18.153 回答