Javascript替换/修改变量指向的对象?

Javascript替换/修改变量指向的对象?,javascript,object,variables,reference,Javascript,Object,Variables,Reference,我有一个指向某个对象的变量,希望用另一个修改过的对象替换该对象。在下面的示例控制台会话中,是否有Javascript函数可以完成我假设的“assign”函数所做的工作 var x = [[1,2,3], [4,[8,2,[1,4,"Delete Me"],4],6]] var y = getSubArrayWithString(x) // Equivalent to y = x[1][1][2] in this case JSON.stringify(y) >>> "[1,4,

我有一个指向某个对象的变量,希望用另一个修改过的对象替换该对象。在下面的示例控制台会话中,是否有Javascript函数可以完成我假设的“assign”函数所做的工作

var x = [[1,2,3], [4,[8,2,[1,4,"Delete Me"],4],6]]
var y = getSubArrayWithString(x) // Equivalent to y = x[1][1][2] in this case
JSON.stringify(y)
>>> "[1,4,"Delete Me"]"
var newY = y.filter(item => item !== "Delete Me")
y.assign(newY) // Equivalent to x[1][1][2] = newY
JSON.stringify(x)
>>> "[[1,2,3],[4,[8,2,[1,4],4],6]]"
如果我只重新分配
y
变量以指向
newY
对象,它不会修改
x


我知道我可以使用splice就地修改
y
,但当我应用更复杂的更改以获得
newY
时,这将不起作用,理想情况下
getSubrayWithString()
将返回对您感兴趣修改的数组的父级的引用(甚至可能是您想要的索引)。那么很容易:

var x=[[1,2,3],[4,8,2,1,4,“删除我”],4,6]]
var[y,ind]=[x[1][1],2]//getSubrayWithString返回父级和索引
y[ind]=y[ind]。过滤器(项目=>item!==“删除我”)

console.log(x)
您没有向我们展示
getSubrayWithString()
,这看起来是此算法的一个非常重要的部分,可能是问题所在。还有
Array.filter
不会改变原始数组,它会返回一个新数组。filter之类的方法会创建一个新列表。你是对的!您应该始终在适当的位置修改此行为的列表。你可以写一个函数,把y放到x。但是如果不刷新x中的引用,这两个对象将是不同的。嗯,好吧,我很喜欢你关于使用splice来改变和替换一切的想法。但是,是的,我确实可以访问父对象,所以如果没有更好的方法,我将修改父对象。这是我的实际代码:,我希望用noteArray.assign(newNoteArray)之类的东西来替换突出显示的部分,但是如果不能有效地实现,我可以让它保持原样,在突出显示的部分中执行233行上的逻辑一次又一次。