我有一个模式,我有一个全局数组,每当它需要处理时,将它移动到一个本地数组并操纵它,以保持原始数组完好无损。到目前为止,它一直运作良好。
function updateSpend(dataspend,year){
// moving data spend global spend
// the value data spend itself is created from another Global attribute in //
// calling class. Something like this **var loc = Object.create(spend);**
globalSpend = dataspend;
// After the subsequent for loop the value of the original reflects the change
dataspend.forEach(function(d){
var val = d.values.filter(function(d){
if(d.key === year.key)
return false;
return true;
});
d.values = val;
})
var UpdateSvg =
d3.selectAll(".rects")
.data(dataspend);
//UpdateSvg.exit().remove();
var rectsAll = UpdateSvg.selectAll("rect")
.data(function(d){
return d.values
});
rectsAll.exit().remove();
rectsAll.append("rect");
//UpdateSvg.exit().remove();
}
我检查了很多关于数组赋值是如何通过引用传递的SO帖子,并且还尝试了Object.create和其他选项仍然反映了全局数组。 是否有任何运营商让他们保持独立?
谢谢, 威拉