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

54 阅读1分钟

问题背景

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

最初我是这样写的:

resArr.push(tempArr)

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

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

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

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

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

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

resArr.push(tempArr.slice())