我可以在 Javascript 中通过引用传递列表(或矩阵)的列表吗?
Can I pass a lists of lists (or matrix) by reference in Javascript?
我正在尝试使用函数 changeGrid() 更改此列表列表的内容。里面的每个字符都应该替换为 'X' 并且网格应该全局更改。是否有可能做到这一点?当变量是一个对象时,我已经看到这样做了,但我不确定如何处理这样的矩阵。谢谢
var grid = [['T', 'W', 'Y', 'R'],
['E', 'N', 'P', 'H'],
['G', 'Z', 'Qu', 'R'],
['O', 'N', 'T', 'A']];
function changeGrid(table){
table = [
[ 'X', 'X', 'X', 'X' ],
[ 'X', 'X', 'X', 'X' ],
[ 'X', 'X', 'X', 'X' ],
[ 'X', 'X', 'X', 'X' ]
]
return table
}
console.log(grid)
console.log(changeGrid(grid));
console.log(grid);
它已经通过引用传递。您将需要执行一个 forEach(或类似的操作)。下面是一个快速而肮脏的解决方案:
var grid = [['T', 'W', 'Y', 'R'],
['E', 'N', 'P', 'H'],
['G', 'Z', 'Qu', 'R'],
['O', 'N', 'T', 'A']];
function changeGrid(table){
table.forEach((e1, i1) => e1.forEach((e2, i2) => table[i1][i2] = 'X'))
}
console.log(grid)
changeGrid(grid);
console.log(grid);
我正在尝试使用函数 changeGrid() 更改此列表列表的内容。里面的每个字符都应该替换为 'X' 并且网格应该全局更改。是否有可能做到这一点?当变量是一个对象时,我已经看到这样做了,但我不确定如何处理这样的矩阵。谢谢
var grid = [['T', 'W', 'Y', 'R'],
['E', 'N', 'P', 'H'],
['G', 'Z', 'Qu', 'R'],
['O', 'N', 'T', 'A']];
function changeGrid(table){
table = [
[ 'X', 'X', 'X', 'X' ],
[ 'X', 'X', 'X', 'X' ],
[ 'X', 'X', 'X', 'X' ],
[ 'X', 'X', 'X', 'X' ]
]
return table
}
console.log(grid)
console.log(changeGrid(grid));
console.log(grid);
它已经通过引用传递。您将需要执行一个 forEach(或类似的操作)。下面是一个快速而肮脏的解决方案:
var grid = [['T', 'W', 'Y', 'R'],
['E', 'N', 'P', 'H'],
['G', 'Z', 'Qu', 'R'],
['O', 'N', 'T', 'A']];
function changeGrid(table){
table.forEach((e1, i1) => e1.forEach((e2, i2) => table[i1][i2] = 'X'))
}
console.log(grid)
changeGrid(grid);
console.log(grid);