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

それを実行すると、

未定義をオブジェクトに変換できません

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;
}
4

2 に答える 2

3

を呼び出すarray_fillと、3 番目のパラメーターが渡されないため、すべての配列要素がundefined...に設定され、undefinedで逆参照することはできません[i]

[]代わりに 3 番目のパラメーターとして渡すことを検討してください。

于 2012-06-03T13:48:43.320 に答える
0

array_fillPHPJS から使用しているので、使用を検討しましたarray_chunkか? これにより、大きな配列が同じサイズの小さな配列に分割されます (最後の配列を除き、数値が均等に分割されない場合は、配列が小さくなる可能性があります)。

于 2012-06-03T13:54:18.153 に答える