【发布时间】:2020-04-19 15:47:42
【问题描述】:
我想推送函数,使它不会改变我的num 数组,但它正在改变它,为什么?该函数中的nums参数是对num数组的引用
var num = []
function push(nums) {
var orig = nums.map(x => x)
var newNum = pushed()
nums = orig
return newNum
}
function pushed() {
num.push(1)
return num
}
console.log("new", push(num))
console.log("old", num)
【问题讨论】:
-
“为什么?” ->
num.push(1) -
因为
num.push(1)。 pre-push 创建的副本没有保存,所以当 push 函数结束时它会作为垃圾消失。也许num = orig(去掉“s”)。
标签: javascript arrays node.js