以下のコードの重要なビットと思われるものを含めています...
updates = {};
products = {};
newProducts = category.items[0].items;
oldProducts = categoryData[i][0].items;
itemsObj = {};
updates['changes'] = [];
続いて、次のような「変更」に項目を追加する一連のコードが続きます...
itemsObj['update'] = "modify";
itemsObj['id'] = oldProduct.id;
itemsObj['type'] = oldProduct.type;
itemsObj['qty'] = newProduct.qty;
updates['changes'].push(itemsObj);
すべての更新の後、テスト中に以下のアラートを呼び出しました。後で削除しようとしたときに、上記の「変更」がなくなっていることがわかりました。
alert(JSON.stringify(updates));
上記のアラートを実行しない場合、「updates」(最終的には updateJSON) は、上記の「changes」ではなく、以下の「productRequest」のみを返します。文字列化されたバージョンの更新を別の変数に設定したり、コンソールにログを記録したり、オンラインで見つけた他のハックな方法を試したりしましたが、上記のアラートだけが機能します。明らかに、これを修正する方法があり、本番環境でアラートを発することはできません。
products['action'] = "editProducts";
products['id'] = xxxxxxxx;
updates['productRequest'] = products;
updateFinal = JSON.stringify(updates);
consoleLog(updateFinal);
誰でも私が期待するのは簡単な解決策ですか?