###前提・実現したいこと
JavaScriptでオブジェクトの配列内の特定のオブジェクトを差し替えたい。
###発生している問題・エラーメッセージ
functionの引数としてオブジェクトを渡した場合は元のオブジェクトは変わらない。
引数として配列を渡した場合は元の配列が変わる。
両方参照渡しだと思うのですが、この動作の違いが理解できずどうしたら実現できるかわかりません。
###該当のソースコード
javascript
1let arr = [{"id":"123"}]; 2let obj = {"name":"hoge"}; 3 4updateObj(arr[0]); 5console.log("arr[0]:"+ JSON.stringify(arr)); 6updateObj(obj); 7console.log("obj:"+ JSON.stringify(obj)); 8 9function updateObj(obj){ 10 let piyo = {"name":"piyo"} 11 obj = piyo; 12}; 13 14updateArr(arr); 15console.log("arr:"+ JSON.stringify(arr)); 16function updateArr(arr){ 17 let piyo = {"name":"piyo"} 18 arr.push(piyo); 19};
###試したこと
上記のテストコード
###補足情報(言語/FW/ツール等のバージョンなど)
JavaScript
回答2件
あなたの回答
tips
プレビュー