javascript - 分配后数组消失
问题描述
我正在使用下面的代码将数组分配给我的对象的键。
我不明白为什么 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)))
解决方案
你的错误只是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)))
推荐阅读
- r - 为什么某些准确度度量未显示在插入符号中( F1 、 Recall 和 precision )
- reactjs - 导出打字稿中的对象列表,并动态导入它们一个反应组件
- ubuntu - SED - 变量上的“文件名太长”
- android - Android中的布局响应问题
- c# - EF Core 5 - 使用 FromSqlRaw 执行存储过程会导致“已添加具有相同键的项目”
- c++ - SetProcessValidCallTargets 引发错误 87
- javascript - 我在模态组件中添加显示和隐藏,但它不起作用
- android - google-auth 显示 java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“int android.view.View.getVisibility()”
- c++ - 如何计算 vcglib 中的测地线路径?
- conv-neural-network - 将字符串转换为浮动