【问题标题】:Adding objects to array object将对象添加到数组对象
【发布时间】:2018-09-06 07:47:50
【问题描述】:

如果条件为真,我正在尝试将对象添加到现有数组中。

下面是我的代码

RequestObj = [{
    "parent1": {
        "ob1": value,
        "ob2": {
            "key1": value,
            "key2": value
        },
    },
},
{
    "parent2": {
        "ob1": value,
        "ob2":{
            "key1":value,
            "key2": value
        }
    }
}]

如果条件为真,我正在尝试将一个对象添加到RequestObj 数组。我可以做RequestObj.push()。但我不知道如何在parent1 对象中添加。

if (key3 !== null) {
    // add this below object to parent1 object
    "ob3": {
        "key1": value,
        "key2": value
    }
}

我找不到任何解决方案。请帮忙

【问题讨论】:

  • 它是一个对象数组.. 我错过了括号
  • 你的括号还是不匹配
  • 如果我理解正确,您想覆盖 parent1 或 parent2 对象中的 key1 和 key2。对吗?
  • 你想要的最终对象是什么?
  • "parent1": { "ob1": value, "ob2": { "key1": value, "key2": value },"ob3": { "key1": value, "key2 ": 值}

标签: javascript jquery angular typescript


【解决方案1】:

向数组添加元素的方法是push它。

// Create new object
var newObject = {
    "ob3": {
        "key1": value,
        "key2": value
    }
};
// Add new object to array
RequestObj.push(newObject);

也可以不先声明变量,直接将对象压入数组:

// Add new object to array
RequestObj.push({
    "ob3": {
        "key1": value,
        "key2": value
    }
});

更新

如果您不是推入数组而是向数组内的对象添加新属性,则需要知道数组内元素的位置,例如第一个元素的RequestObj[0]

然后在该元素中,您需要向 parent1 对象 (RequestObj[0].parent1) 添加一个新属性:

RequestObj[0].parent1.ob3 = {
      "key1": "A",
      "key2": "B"
 };

var RequestObj = [{
  "parent1": {
    "ob1": "A",
    "ob2": {
      "key1": "B",
      "key2": "C"
    },
  },
  "parent2": {
    "ob1": "D",
    "ob2": {
      "key1": "E",
      "key2": "F"
    }
  }
}];

var key3 = 'somethingNotNull';

if (key3 !== null) {
  RequestObj[0].parent1.ob3 = {
      "key1": "A",
      "key2": "B"
  };
}
console.log(RequestObj);

【讨论】:

  • 我需要将 ob3 对象推入parent1
  • 每个家长 1?或者只是数组中的第一项
  • 只对parent1,它可能不是第一项
【解决方案2】:

你应该在循环中迭代RequestObj并通过键parent1找到对象。

为此,您可以像这样使用.filter 函数:

for(let i = 0; i < RequestObj.lenght; i++) {
   let found_object = RequestObj[i].filter(function (r) {
      return r == 'parent1'
   });
}

然后你就可以对found_object执行操作了。

【讨论】:

    猜你喜欢
    • 2022-01-13
    • 2012-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-16
    • 2020-11-04
    相关资源
    最近更新 更多