慕后森
这是一个基本解决方案。let listOne = [[1,2],[3,4],[5,6]];let listTwo = [[4,7],[4,1],[2,4],[8,4]];let listThree = [[1,2],[3,4],[5,6],[0,0,3,5],[2,5,7]];function listAdjust(list, change = 1) { let newList = [...list]; let last = newList[newList.length - 1]; //Whatever we want to change it to last[1] = change; return newList;}console.log(listAdjust(listOne));console.log(listAdjust(listTwo));console.log(listAdjust(listThree));// Which outputs to...[ [ 1, 2 ], [ 3, 4 ], [ 5, 1 ] ][ [ 4, 7 ], [ 4, 1 ], [ 2, 4 ], [ 8, 1 ] ][ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ], [ 0, 0, 3, 5 ], [ 2, 1, 7 ] ]我更改添加了一些示例,以表明无论数组的长度如何,它都可以工作。我还更改了函数以接受选项第二个参数,即您要将其更改为的内容。如果您不希望“change = 1”在那里删除它,但是如果您确实将函数中的“change”更改为您想要将其更改为的任何内容,则可以将其删除。当然,您可能希望替换“change = 1”中的1,无论您希望默认值实际是什么。编辑:我也不确定为什么人们会想出奇怪的复杂方法来“克隆”数组。您只需要使用ES6方法,即使用点差运算符。看看我如何'让newList = [...list];' 在代码中?这基本上创建了一个与原始数组具有相同值的新数组,但无需简单地更改对它的“引用”。
明月笑刀无情
如果你的期望只是改变最后一项的第二个元素,就像这样:[[1,2],[3,4],[5,6]] -> [[1,2],[3,4],[5,1]]
[[4,3],[2,7],[8,4],[4,7]] -> [[4,3],[2,7],[8,4],[4,1]]
[[1,2],[3,4]] -> [[1,2],[3,1]]然后你可以这样做:function listadjust(b) { const newArray = JSON.parse(JSON.stringify(b))
newArray[newArray.length - 1][1] = 1
return newArray;
}编辑:抱歉,调整为不变异:P。