gpt4 book ai didi

javascript - 更新对象内的 javascript 数组会更新对象中的所有数组

转载 作者:行者123 更新时间:2023-12-01 02:05:07 26 4
gpt4 key购买 nike

我觉得我现在有点愚蠢,所以希望你能帮忙。

我有一个对象discount_arr,它包含一个关联的数字数组。但是,当尝试更新特定数组时,它似乎适用于对象中的所有数组。

这两个更新的所有项目都不是我想要的。

discount_arr.EMAILVIP[0] = 100;

discount_arr[EMAILVIP][0] = 100;

enter image description here

我确信我错过了一些非常明显的东西......

编辑:

为了填充对象,我使用以下代码:这会循环另一组数据,仅提取用作数组项本身的唯一代码。

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;

}

}

最佳答案

问题是所有数组都引用同一个 default_days 数组。

使用 discount_arr[j] = [...default_days]; 来复制数组

如果您没有使用 ES6,那么discount_arr[j] = default_days.concat(); 应该这样做

关于javascript - 更新对象内的 javascript 数组会更新对象中的所有数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50175088/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com