首页 > 解决方案 > 分配后数组消失

问题描述

我正在使用下面的代码将数组分配给我的对象的键。

我不明白为什么 user_dict 显示“标签”是一个空数组而不是包含 some_array。

  let user_dict = {}
  let some_array = ['test', false]
    console.log('user_dict is ', JSON.parse(JSON.stringify(user_dict)))
    if (!user_dict['labels']) {
        user_dict['labels'] = []
    }
    if (!user_dict['labels']['test1']) {
        user_dict['labels']['test1'] = some_array
    }
    console.log('user_dict2 is ', JSON.parse(JSON.stringify(user_dict)))

标签: javascript

解决方案


你的错误只是user_dict['labels'] = [] 它是一个数组,数组与索引(整数)一起使用。user_dict['labels']['test1'] 是一个哈希,所以只需在初始化时将 [] 替换为 {} ...

现在可以使用了;)

let user_dict = {}
let some_array = ['test', false]
    console.log('user_dict is ', JSON.parse(JSON.stringify(user_dict)))
    if (!user_dict['labels']) {
        user_dict['labels'] = {} //<====== correction is here
    }
    if (!user_dict['labels']['test1']) {
        user_dict['labels']['test1'] = some_array
    }
    console.log('user_dict2 is ', JSON.parse(JSON.stringify(user_dict)))

推荐阅读