TS中向二维数组中追加一维数组时出现的问题

Zesari 发布于 2025-01-18 72 次阅读


背景

在写 39. 组合总和 - 力扣(LeetCode 时,涉及到了向二维数组中追加一位数组的操作

最初我是这样写的:

resArr.push(tempArr)

其中tempArr是待追加的一维数组,resArr则是二维数组

这样的结果是:最终得到的resArr中都是空的一维数组,如[[], [], []]

原因:上面的写法是将tempArr的引用追加到resArr

在后续操作中,如果对tempArr进行修改(本题是将tempArr中所有元素弹出),那么resArr中的tempArr引用也会被改变

解决:向resArr中压入新数组而不是引用

压入tempArr.slice()。如果括号中不提供任何参数,slice方法会复制原数组中的所有元素到一个新数组,完结。

resArr.push(tempArr.slice())

Hello, It's me.
最后更新于 2025-01-21