首页 > 解决方案 > 将 JavaScript 对象添加到 for 循环中的现有 JavaScript 对象

问题描述

我正在尝试将 JavaScript 对象附加到循环中的现有 JavaScript 对象。

var object1 = { key1: true, header: 'Title A', Size: 100 };
$.each(elements, function (i, item) {
  let headerDisplay = '';
  headerDisplay = this.title;
  var row = { key1: true, header: '' + headerDisplay + '', Size: 100 };
  Object.assign(object1, row);
});

我试过了Object.assign(),但它只给出了最后一个对象。期望输出数组类似于

var finalObject = [
  { key1: true, header: 'Title A', Size: 100 },
  { key1: true, header: 'Title1', Size: 100 },
  { key1: true, header: 'Title2', Size: 100 },
  ...
];

请让我知道我们如何将对象添加到循环中的现有对象

标签: javascriptjsonjavascript-objects

解决方案


既然你已经在使用 jQuery 为什么不试试这个$.extend()功能呢?它应该看起来像这样:

 var object1 = { "key1": true, "header": "Title A", "Size": 100};
$.each(elements, function (i, item) {
    let headerDisplay = '';
    headerDisplay =  this.title;
    var row = { "key1": true, "header": ""+headerDisplay+"", "Size": 100};
    $.extend(object1, row)
  });

请记住,此方法将修改第一个 object1。如果这不是预期的行为,您可以将一个空对象作为函数的第一个参数传递,并将结果传递给另一个变量,如下所示:

const newObject = $.extend({}, object1, row)

不确定您要做什么,但也许有更好的选择。尝试将对象的集合保存在数组中可能是另一种可行的解决方案。祝你好运!!


推荐阅读