我在递归期间连接“两个”数组时遇到了麻烦。我从一个空数组开始,并在函数期间将它与新数组连接起来。连接后的版本成为再次与同一函数中的另一个数组连接的数组。以下是我想要的:
var oldArray = [];
for (i=0; i<10; i++) {
var newArray = [i];
oldArray = oldArray.concat([newArray]);
}
document.write(oldArray);
produces: [0,1,2,3,4,5,6,7,8,9]
但是,如果我使用我的实际生产代码,我会得到向前两步,后退一步的效果。
用角写的。go() 是包装函数
var accounts = [];
$http.get('/api/account/', {params:{page:page}}).then(function (result) {
var count = result.data.count,
totalPages = Math.ceil(count/10),
results = result.data.results;
accounts = accounts.concat(results);
if (page < totalPages) {
page++;
go(page);
}
return accounts;
});
produces: [0,1,0,2,1,3,2,4,3,5,4,6,5,7,6,8,7,9]