2016-05-11 5 views
0

からのデータを持つ配列を作成し、私はデータ、1枚のチケットに割り当てます。私はこれをやっている別のループのJavascript

私の配列に "name"を追加したいのですが、 "name"は前のループに含まれているので問題が発生します。 私に助けてもらえますか?終わり

私はそのような何かをしたいと思います:

[ 
O:{name:"test",date:"mydate",status:"mystatus",tag:"tag",id:"007"} 
1:{name:"test2",date:"mydate2",status:"mystatus2",tag:"tag2",id:"0072"} 
] 
+0

これらの入力から得られる入力配列と予想出力配列を表示してください。 –

+0

これは 'recent [userid] =" name "を意味します:data.data.users [i] .name;'? –

+0

'userid'が' requesterid'と同じで、それを 'name 'と呼ぶのであれば、' data.data.user [i] .name'をプッシュしたいのです。 – moskitos

答えて

0

この行は何の意味を作っていません(また、構文が間違っている可能性があります)

recent[userid] = "name":data.data.users[i].name; 

をあなたはadd "name" in my array

にしたい場合

次に

recent[userid] = { "name": data.data.users[i].name }; //now recent is an array of object 

または単に

recent[userid] = data.data.users[i].name; 

今、あなたは第二のループのためにrecentとは異なる配列を使用する必要が

var recentArr = []; 
for (j = 0; j < data.data.tickets.length; j++) { 
    var requesterid = data.data.tickets[j].requester_id; 
    var created_at = data.data.tickets[j].created_at; 
    var tickettitle = data.data.tickets[j].subject; 
    var ticketstatus = data.data.tickets[j].status; 
    var arrayRef = recentArr[requesterid] || []; 
    recentArr[requesterid] = arrayRef.concat([{ 
      "date": created_at, 
      "titre": tickettitle, 
      "status": ticketstatus, 
      "tag": tag, 
      "id": requesterid 
      "name" : recent[requesterid] 
     }]); 
} 

最終ラインに変更することができます(連結のための配列を作成しないように)

recentArr[requesterid] = recentArr[requesterid] || []; 
    recentArr[requesterid].push ({ 
      "date": created_at, 
      "titre": tickettitle, 
      "status": ticketstatus, 
      "tag": tag, 
      "id": requesterid 
      "name" : recent[requesterid] 
     }); 
+0

次のエラーが表示されます:TypeError:arrayReff.concatは関数ではなく、 'push'関数を使用すると、同じエラーが発生します – moskitos

+0

@moskitosは' recentArr [requesterid] '配列に初期化されていません。私が提案した最後のオプションを使用してください。 – gurvinder372

+0

私はこのrecentArr [requesterid] .pushが関数ではない – moskitos

関連する問題