javascript - 如何添加到键值对对象(jsx)中的列表
问题描述
如果你有一个键值对
let appleLocations = [{
"red": [],
"blue": [],
"green": []
}
]
并且您找到它们所在的位置(简单的数字标识符),并希望键/值最终(完成搜索后,每次向列表中添加 1 个数字标识符)如下所示:
appleLocations = [
"red": [2,4,6],
"blue": [3,7,9,8],
"green": [0,5]
]
问题变成了 - 如何在不必先引用它们的情况下添加到最初的空白和随后填充的数组中。
appleLocations["red"] = [appleLocations["red"], newLocationNumber]
每次运行时返回一个包含一个子列表和更多子列表的列表,如下所示... [2, [4, [6]]]
拥有 [2,4,6] 更有用的地方
由于它不是“命名”数组,因此不能使用 theconcat
或其他有用的操作。
解决方案
你在这里基本上有两个选择。保留原始语法并访问数组中的单个元素以获取要更改的属性:
let appleLocations = [{
"red": [],
"blue": [],
"green": []
}
];
appleLocations[0].red = appleLocations[0].red.concat(2);
console.log(appleLocations[0].red);
console.log(appleLocations);
或者,将您的第二个语法修改为对象的正确语法并像往常一样访问属性。我在这里使用扩展语法只是为了展示向数组添加元素的其他方法:
let appleLocations = {
"red": [2,4,6],
"blue": [3,7,9,8],
"green": [0,5]
};
// A different syntax just to show what's possible
appleLocations = {
...appleLocations,
red: [...appleLocations.red, 10],
};
console.log(appleLocations.red);
console.log(appleLocations);
推荐阅读
- html - 获取 HTML 中的最后第二项
- python - 我可以修改一个数据表以匹配另一个几乎相似的数据框 ID 吗?
- c++ - C 标准的哪些部分证明了整数类型的对应关系?
- flutter - 验证 TextFormField [Flutter] 的两件事
- docker - 如何配置两个docker(1-apache+mod_fcgi 2-php-fpm+phpmyadmin)
- c - 使用 nanosleep() 时出现分段错误
- python - 如何删除列表中的文件路径并仅显示文本文件?
- python - 如何打印包含每个元素索引的列表?- Python
- python - 在更新字典时加速嵌套的 Python 循环
- python - 为什么 xlwriter 会删除所有以前的单元格?