javascript - 创建子对象的同时添加键/值对

标签 javascript object

我是处理对象的新手。我想要:

  1. 添加 key
  2. 向该键添加子对象
  3. 将键/值对推送到该子对象。

例如,我希望实现的数据结构是:

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/

相关文章:

java - JAVA中如何将字符串转换为对象

javascript - 复杂但高效的 JavaScript 数组过滤

javascript - 通过 JQuery 从 SELECT 标签获取选定的 Data 属性

javascript - 如何遍历对象数组以查找 ID 然后返回同级键

javascript - Eloquent Javascript 列表返回 undefined ,为什么?

python - 哪个更基本 : Python functions or Python object-methods?

javascript - 光标在输入标签中不起作用

javascript - 修复 Firefox 文件选择窗口在所有其他窗口后面打开的问题

javascript - 如何使用 Tableau JavaScript API 将 Tableau 嵌入到网页中?

java - 创建对象数组需要帮助