0

再帰中に「2 つの」配列を連結する際に問題が発生しています。空の配列から始めて、関数の実行中にそれを新しい配列と連結します。連結されたバージョンは配列になり、同じ関数内で別の配列と再び連結されます。以下は私が欲しいものです:

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]

しかし、実際の製品コードを使用すると、2 歩前進して 1 歩後退するような効果が得られます。

角度で書かれています。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]
4

0 に答える 0