我想我在这里有一个愚蠢的时刻,所以希望你能帮忙。
我有一个对象discount_arr
,它包含一个关联的数字数组。当尝试更新特定数组时,它似乎适用于对象中的所有数组。
这两个都更新了我想要的所有项目。
discount_arr.EMAILVIP[0] = 100;
discount_arr[EMAILVIP][0] = 100;
我确信我错过了一些非常明显的东西......
编辑:
要填充对象,我使用此代码:这将循环通过另一组数据,以仅提取用作数组项本身的唯一代码。
var default_days = [];
是我要覆盖的默认数组。我根据月中的天数用0个值填充它。
var unique = {};
for( var i in data ){
//console.log(data[i]);
for (var j in data[i]){
//console.log(j);
if( typeof(unique[j]) === "undefined"){
discount_arr[j] = default_days;
}
unique[j] = 0;
}
}
答案 0 :(得分:2)
问题是所有数组都引用相同的default_days
数组。
使用discount_arr[j] = [...default_days];
代替复制数组
如果您不使用ES6,那么
discount_arr[j] = default_days.concat();
应该这样做