取得したデータに応じて、いくつかの特定の場所で操作する必要があるセルのテーブルがあります
let arr = Array(3).fill(Array(3).fill(0));
[{x: 0, y: 0, value: 1}, {x: 1, y: 0, value: 2},{x: 2, y: 0, value: 3}].map(pos =>
arr[pos.x][pos.y] = pos.value
)
console.log(arr)
私はコードが与えることを期待して[[1,0,0],[2,0,0],[3,0,0]]
いましたが、代わりにそれは与えます[[3,0,0],[3,0,0],[3,0,0]]
、言い換えれば、それはすべてを最後y
(値3)として描画し[pos.x]
、何らかの理由でを無視します、理由はわかりません。
このコードが期待どおりに機能しない理由の説明として、考えられる回避策について助けを求めたいと思いました。
前もって感謝します!
代わりにこれを試してください:
var arr = Array.from({length:3},()=>Array(3).fill(0));
[{x: 0, y: 0, value: 1}, {x: 1, y: 0, value: 2},{x: 2, y: 0, value: 3}].map(pos =>
arr[pos.x][pos.y] = pos.value
)
console.log(arr);
このArray.from()
メソッドは、array-like
oriterable
オブジェクトから浅くコピーされた新しいArrayインスタンスを作成します。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加