我是处理对象的新手。我想要:
- 添加 key
- 向该键添加子对象
- 将键/值对推送到该子对象。
例如,我希望实现的数据结构是:
invalidFields = {
"_0" : {
"firstName" : "foo",
"lastName" : "la",
}
}
最嵌套键/值对的添加是通过迭代和比较来完成的,因此本质上需要将其添加到“_0”,而不是覆盖它。
到目前为止我已经:
let invalidFields = {}; // this is initialised outside of the for loop
...
const field = "foo";
const passengerIdentifier = "_" + passengerIndex; // "_0"
const fieldKey = "firstName";
invalidFields[passengerIdentifier] = field;
这会添加 "firstName": "foo"
的键/值对,但当循环继续时,它会覆盖它,因此我获取的数据仅适用于 field
:
invalidFields = {
"_0" : "foo",
}
这显然是不正确的,因为我需要将键/值对添加到“_0”
子对象。我做错了什么?
编辑:这是我现在拥有的示例,但这似乎不起作用,未添加字段部分:
const passengerIdentifier = '_'+passengerIndex;
if (!invalidFields[passengerIdentifier]) {
Object.assign(invalidFields, { [passengerIdentifier] : '' });
Object.assign(invalidFields[passengerIdentifier], { [fieldKey]: field });
}
最佳答案
要向每个子对象添加键/值对,请使用以下方法:
...
var field = "foo",
passengerIdentifier = "_" + passengerIndex, // "_0"
fieldKey = "firstName";
// assuring sub-object with certain `passengerIdentifier`
invalidFields[passengerIdentifier] = invalidFields[passengerIdentifier] || {};
invalidFields[passengerIdentifier][fieldKey] = field;
关于javascript - 创建子对象的同时添加键/值对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42109388/