javascript - 使用 join() 批量处理数组?

标签 javascript

   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 个元素,依此类推,直到您处理完所有内容。

最佳答案

如果您想加入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

Documentation: https://developer.mozilla.org

关于javascript - 使用 join() 批量处理数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18540795/

相关文章:

javascript - KnockoutJS 未绑定(bind)

javascript - 如何从 json 填充 footable

javascript - Jquery 从外部函数调用定义的函数

javascript - 如何从 Javascript 的域中删除子域和 .com/.org 等?

javascript - 从一个 php 文件导航到另一个携带数据数组的文件

Javascript:从 UL 选择列表

javascript - 我应该如何重构这个嵌套的 IF 语句?

javascript - 根据 float 制作条件语句

javascript - $ "i"+i) 中的变量 ("#show"不工作

javascript - Twitter 分享计数网址不起作用。寻找替代方案