JavaScript forEach未将新值保存到2D数组中的子数组

JavaScript forEach未将新值保存到2D数组中的子数组,javascript,arrays,Javascript,Arrays,下面是我的代码 oddCells函数的样本值为n=2,m=3,索引=[[0,1],[1,1]] 我的incrementColumn辅助函数工作正常。forEach循环在内部工作,但由于某种原因,递增的值不会保存回arr[row] 问题来自LeetCode“矩阵中具有奇数值的单元格” var incrementRow=(row,arr)=>{ arr[row].forEach((e)=>e++); } var incrementColumn=(col,arr)=>{ arr.forEach((e)

下面是我的代码

oddCells函数的样本值为n=2,m=3,索引=[[0,1],[1,1]]

我的incrementColumn辅助函数工作正常。forEach循环在内部工作,但由于某种原因,递增的值不会保存回arr[row]

问题来自LeetCode“矩阵中具有奇数值的单元格”

var incrementRow=(row,arr)=>{
arr[row].forEach((e)=>e++);
}
var incrementColumn=(col,arr)=>{
arr.forEach((e)=>e[col]++);
}
变量oddCells=(n,m,索引)=>{
//定义我们的矩阵
设矩阵=[];
//用零初始化矩阵
for(设i=0;i
arr[row].forEach((e)=>e++)不执行任何操作。您必须在正确的索引处实际保存递增的值:
arr[row]=arr[row].map(e=>++e)
如果您想使用forEach:
arr[row]。forEach((e,i)=>arr[row][i]=++e)
您好,谢谢您的回复。我以前尝试过map解决方案,但不同之处在于我编写了++e而不是e++。。。现在它工作了,你知道为什么吗?@zarya看看这里关于
++e
vs
e++
-
arr[row];forEach((e)=>e++)不执行任何操作。您必须在正确的索引处实际保存递增的值:
arr[row]=arr[row].map(e=>++e)
如果您想使用forEach:
arr[row]。forEach((e,i)=>arr[row][i]=++e)
您好,谢谢您的回复。我以前尝试过map解决方案,但不同之处在于我编写了++e而不是e++。。。现在它工作了,你知道为什么吗?@zarya在这里看一下
++e
vs
e++
-
var incrementRow = (row, arr) => {
    arr[row].forEach((e) => e++);
}

var incrementColumn = (col, arr) => {
    arr.forEach((e) => e[col]++);
}

var oddCells = (n, m, indices) => {
    //Define our matrix
    let matrix = [];
    //Initialize matrix with zeroes
    for(let i = 0; i < n; i++) {
        matrix[i] = []
        for(let j = 0; j < m; j++) {
            matrix[i][j] = 0;
        }
    }
    console.log(matrix);
    //Iterate through indices array
    for(let i = 0; i < indices.length; i++) {
        incrementRow(indices[i][0], matrix);
        incrementColumn(indices[i][1], matrix);
    }
    console.log(matrix);
};