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个元素等等,直到你处理完所有内容。
答案 0 :(得分: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
答案 1 :(得分:1)
我会使用模数。
var i, start = 0;
var newArray = [];
for (i = 0; i <= json.length; i++) {
// push whatever you want to newArray
// if i is dividable by 100 slice that part out and join it
if (i % 100 === 0) {
console.log(newArray.slice(start, i).join(','));
start = i;
}
}