0

だから私は bby_dataset と呼ばれるグローバルオブジェクトを持っていて、いくつかのデータをループして、拡張して bby_dataset にプッシュしています。ただし、データセットのプッシュは常に 0 から開始されます。そのため、2 回目に拡張を行うと、最初のデータセットが上書きされます。

var bby_dataset = {};
function bby_test(page) {
$.ajax({
    type: "GET",
    url: "http://api.remix.bestbuy.com/v1/products(productTemplate=Printers)?format=json&show=manufacturer,sku,modelNumber,name,regularPrice&pageSize=100&page="+page+"&apiKey={APIKEY}",
    cache: true,
    dataType: 'jsonp',
    success: function (data) {
        if(data.totalPages != page){
            $.extend(bby_dataset, data.products);
            bby_test(data.currentPage + 1);
        }else{
            $.extend(bby_dataset, data.products);
            bby_call(bby_dataset);
        }
    }
});
}
bby_test(1);

オブジェクトは、obj1: {0}、{1}、{2} obj2: {0}、{1}、{2} のようになります。したがって、by_dataset の最初のループは obj1 を取り込みますが、obj2 が通過すると、データは拡張されるのではなく置き換えられます。なかなか結果を出せません。

明確にするために、上記のために機能しないことを理解しています。名前を3、4、5などに自動変更する最後に追加する方法があるかどうか疑問に思っています。それ以外の場合は、最初のオブジェクトをそこに追加するだけで済みますが、各オブジェクトをループし、extend を介して新しいオブジェクトとして追加する必要があります。

4

1 に答える 1

0

この質問はまだ残っていますが、オブジェクト自体で解決策を見つけました。それを配列に切り替えたところ、すべて正常に動作しました。

于 2013-08-25T22:14:19.683 に答える