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

时间:2018-05-04 12:34:46

标签: javascript arrays

我想我在这里有一个愚蠢的时刻,所以希望你能帮忙。

我有一个对象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;

        }

    }

1 个答案:

答案 0 :(得分:2)

问题是所有数组都引用相同的default_days数组。

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

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