実現したいこと
任意のオブジェクトが20個入った配列を作りたいのですが、どう書けば良いのかわかりません。
オブジェクト配列自体は作成できても、fillを使用するとそのオブジェクトへの参照がコピーされてしまうため、配列内の一つのオブジェクトを書き換えると他のオブジェクトも全て書き換わってしまいます。
オブジェクトが書き換わらないオブジェクト配列の作成方法を教えていただきたいです。
試したこと
TypeScript
1// { node: [], edge: [] }オブジェクトが20個入った配列を作りたい 2type Data = { 3 node: [] 4 edge: [] 5} 6 7// 試したこと① 8const initData_a = Array<Data>(20).fill({ node: [], edge: [] }) // オブジェクトへの参照がコピーされる 9initData_a[0].node.push({ id: '0', label: 'something' }) 10 11// 試したこと② 12const initData_b = Array<Data>(20).fill().map(() => ({ node: [], edge: [] })) // オブジェクトへの参照がコピーされる 13initData_b[0].node.push({ id: '0', label: 'something' }) 14 15// 結果:一つ目のオブジェクト以外も書き換わる 16// initData_a,initData_b = [ 17// { node: [{ id: '0', label: 'something' }], edge: [] }, 18// { node: [{ id: '0', label: 'something' }], edge: [] }, 19// ...]
補足
回答1件
あなたの回答
tips
プレビュー