我正在从我的 app-config.js 文件中加载一个变量,然后使用 .slice() 复制它以试图防止其状态发生变化。令我很懊恼的是,我用来更改数据的函数似乎没有尊重这种避免突变的尝试。 mySensitivityVars
不断变化,但我不太确定如何变化,因为我只是直接作用于 mySeries
。关于为什么会发生这种情况的任何想法?这是代码:
var mySeries = mySensitivityVars.slice();
//Dummy Processing Algorithm
function myDummyAlgo(sliderIndex, newValue, range) {
console.log(mySeries[sliderIndex].data)
var modifier = newValue/(range/2)
var newSeries = mySensitivityVars[sliderIndex].data.map(function(num){
return num * modifier
})
console.log(newSeries)
// mySeries[sliderIndex].data = newSeries
// console.log(sensitivityChart.series[0].data)
sensitivityChart.series[sliderIndex].setData(newSeries);
};
最佳答案
Slice 可以复制数组,但不会复制数组中引用的任何对象(仅复制引用)
关于javascript - 为什么我的数组在使用 slice() 后被改变了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47104313/