連想配列Aと連想配列Bがあり、JavaScriptにてforEachを使って該当条件に一致する場合は連想配列Aの情報を連想配列Bに追加するというコードを書いています。書いたコードを試したところ想定通り動きはしたのですが、下記のエラーが起きました。
確かめてみたところ、ListA側のsobaSeqに対応するListBのitemSeqが無いためのエラーだとわかりましたが、対応する番号がなかった場合にスキップする処理がうまくできませんでした。どのように書けばいいのでしょうか?
発生している問題・エラーメッセージ
予期しないエラーが発生しました。TypeError: Cannot set property 'itemName' of undefined
該当のソースコード
JavaScript
1let ListA = [ 2 { itemName: 'どうのつるぎ', sobaSeq: 1}, 3 { itemName: 'かわのたて', sobaSeq: 3}, 4 { itemName: 'かわのぼうし', sobaSeq: 2 }, 5 { itemName: 'かわぼう', sobaSeq: 4 }, 6 ] 7 8let ListB = [ 9 {totalPrice:200,itemSeq:1}, 10 {totalPrice:1500,itemSeq:2}, 11 {totalPrice:1523,itemSeq:3} 12]; 13 14ListA.forEach((a) => { 15 const name = a.itemName; 16 const target =ListB.find((b) => b.itemSeq === a.sobaSeq); 17 target.itemName = name; 18 }) 19 20console.log(ListB); 21
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/11 04:15