我實體化了一個大小為 10x10 的二維陣列,所有值都設定為false. 我希望某些單元格帶有 value true,最好的情況是隨機分配。
但是,如果我使用array[x][y] = true;將單元格的值設定為 true,則具有給定 y 值的所有單元格都設定為 true。
例子:
Input:
x = 1
y = 2
Output:
[
[false, false, true, false, false, false, false, false, false, false],
[false, false, true, false, false, false, false, false, false, false],
[false, false, true, false, false, false, false, false, false, false],
[false, false, true, false, false, false, false, false, false, false],
[false, false, true, false, false, false, false, false, false, false],
[false, false, true, false, false, false, false, false, false, false],
[false, false, true, false, false, false, false, false, false, false],
[false, false, true, false, false, false, false, false, false, false],
[false, false, true, false, false, false, false, false, false, false],
[false, false, true, false, false, false, false, false, false, false]
]
任何想法,為什么會這樣?我只是不明白。在下面找到我的代碼:
// define board size
let boardSize = [10, 10];
// create a 2D array with size 10x10 and all values false
let currentBoard = Array(boardSize[0]).fill(Array(boardSize[1]).fill(false));
// fill 3 random cells with value true
for(let i = 0; i < 3; i ){
let x = Math.floor(Math.random() * boardSize[0]);
let y = Math.floor(Math.random() * boardSize[1]);
currentBoard[x][y] = true; // this line sets the value of every x at position y to true, not just x/y
console.log(x '/' y); // x and y have distinct values
}
console.log(currentBoard);
uj5u.com熱心網友回復:
問題是第二個 Array.fill 只是一遍又一遍地參考它自己。如果你用這個替換它,你可以解決這個問題:
let currentBoard = Array(boardSize[0]).fill([]).map(() => Array(boardSize[1]).fill(false));
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/405976.html
標籤:
上一篇:進行keras預測后的嵌套串列
