2
   var j = 0;
   var batchSize = 100;
   var json_left_to_process = json.length;
   while (json_left_to_process != 0) {
       var url_param = "";
       for (var i = j; i < j+batchSize; i++) {
           url_param += json[i].username + ",";
           json_left_to_process--;
       }
       j += batchSize;
       if (json_left_to_process < 100) {
           batchSize = json_left_to_process;
       }
       url_param.substring(0, url_param.lastIndexOf(','));

      //make ajax request
           $.ajax({
                type: "POST",
                url: "/api/1.0/getFollowers.php",
                data: {param: url_param}
           )};
  }

使いたくない

url_param += json[i].username + ",";

代わりに言いたいのは

newArray.push(json[i].username) 

その後

url_param = newArray.join(',');

しかし、一度に配列内の最大100 個の要素を処理したいと考えています。どうすればそうできますか?

編集: 申し訳ありませんが、すべてを処理するまで、最大 100 要素、次に最大 100 要素、さらに最大 100 要素という意味でした。

4

2 に答える 2

3

100に参加してから別の100に参加したい場合は、次のように実行できます。

 newArray.slice(0, 100).join(',');

そしてその後

 newArray.slice(100, 200).join(',');

このような関数を作成して自動化できます。

var array = [1...1000], // The array
    start = 0,          // The index to start at
    step  = 100;        // How many to get at a time

var getBatch = function() {
    var result = array.slice(start, start + step).join(',');
    start += step;  // Increment start
    return result;
};

getBatch(); // === 1, 2, 3, 4, ... 100
getBatch(); // === 100, 101, 102, ... 200

ドキュメント: https://developer.mozilla.org

于 2013-08-30T20:22:34.383 に答える