blog

Array.fill()を使ってオブジェクトを埋める際の問題点

これではうまくいかないので、mapを使ってデータを埋めます。 最終的な解決策は、まず配列の各項目をnullで埋めて、配列が長さだけでなくデータ項目を持つようにし、次にmapを使って各項目をnewObj...

Jun 5, 2020 · 1 min. read

Array.fill()を使って配列を空白のオブジェクトで埋めたい場合は、次のように注意する必要があります。

Array(length).fill({ }) これは、作成された配列に、{ } 項目をすべてまったく同じように埋め込みます。

let arr = Array(6).fill({}); console.log(arr[1] === arr[2]) //true //たとえ newObjectを使ったとしても、各項目は等しい。 let other = Array(6).fill( new Object() ) console.log(other[1] === other[2]) //true //オブジェクト.create({ }), 同じように動作する let arr_new = Array(6).fill( Object.create({}) ) console.log(arr_new[1] === arr_new[2]) //true

それではうまくいかないので、地図を使ってデータを埋めてください。

Array(6).map(item => return new Object() ) // 戻り値[empty × 6] Array(6).map(item => { console.log("行くのか行かないのか?) return new Object() }) //配列をアイテムで埋めずに長さを宣言すると、mapメソッドはそれをスキップし、forEachメソッドもそれをスキップすることがわかった!

究極の解決策

  1. 配列の各項目を最初に null で埋めて、配列が長さだけでなくデータ項目も持つようにします。

  2. 各項目を new Object( ) としてマップに置き換えます。

なんで変な感じなの?

Read next

html h5カスタムタグ カスタム要素

この要素はmine-elmentと呼ばれ、そのクラスオブジェクトは'div'要素を継承したものです。

Jun 3, 2020 · 1 min read