ループで動的配列を作成する必要がありますが、目的の結果が得られないようです。動的配列を作成する
私が欲しいの配列は次のとおりです。
{
"CategoryName": "somecategoryname",
"Date": "02-17-2012",
"Id": 24,
"ProductToHide": [
{
"IsHide": true,
"ProductId": "someid"
}
],
"ProductsToAdd": [
{
"MealSequence": "S1",
"ProductId": "Someid"
},
{
"MealSequence": "S2",
"ProductId": "Snack_11"
}
],
"UserId": "1"
}
と私は製品を追加するには、次の機能を使用しています:私は次のエラーを与える
addProduct: function(id){
var tempArr = [];
$.each(this.mCData.ChildCategories, function(i, item){
$.each(item.PList, function(j, jsonPr){
if (jsonPr.TID == id){
addProduct = new mealTypeProduct();
addProduct.data = jsonPr;
tempArr = addProduct.modifyProduct();
}
})
})
// queryStr = {"add" : tempArr};
// this.modificationArray.push(queryStr);
this.modificationArray['add'].push(tempArr);
console.log(this.modificationArray);
}
その:
this.modificationArray.add.push is not a function
this.modificationArray['add'].push(tempArr);
初期化は次のようにして行われる。
var mealType = {
chosenDate: new Date(), tabViewHtml: '',
modificationArray: [], saveArray: [],
}
私は間違っていますか?
したい配列が配列でないとして初期化されなければなりません。それはオブジェクトです。 'modifyProduct'の機能は何ですか?それは何を返すのですか?それは配列を返しますか?スカラ(またはオブジェクト)を返すと、tempArrayが緩んでいます。詳細が必要です。 –
modifyProduct()は別のサブ配列を返します。 – amit
これを作成しようとしているソース配列/オブジェクトを共有してください。可能であれば、http://jsfiddle.net/デモを作成してください。 – Diode