目前正在我的应用程序中组合一个函数,并且想知道是否有一种更整洁的方法来用ES6编写此函数,而不是使用两个for循环。
目的是创建一个多维数组以跟踪坐标x和y。就目前的情况来看,它工作正常,但我希望使其更整洁。
function setBoard() {
boardParts = new Array(tileCount);
for (let i = 0; i < tileCount; ++i) {
boardParts[i] = new Array(tileCount);
for (let j = 0; j < tileCount; ++j) {
boardParts[i][j] = new Object();
boardParts[i][j].x = tileCount - 1 - i;
boardParts[i][j].y = tileCount - 1 - j;
}
}
emptyLoc.x = boardParts[tileCount - 1][tileCount - 1].x;
emptyLoc.y = boardParts[tileCount - 1][tileCount - 1].y;
solved = false;
}
感谢任何帮助!
谢谢
最佳答案
如果要使用ES6,可以使用Array#from生成阵列:
const tileCount = 4;
const boardParts = Array.from({ length: tileCount }, (_, i) =>
Array.from({ length: tileCount }, (_, j) => ({
x: tileCount - 1 - i,
y: tileCount - 1 - j
}))
);
console.log(boardParts);