将JavaScript对象添加到JavaScript对象

ha5z0ras  于 2023-01-24  发布在  Java
关注(0)|答案(7)|浏览(153)

我希望JavaScript对象位于另一个JavaScript对象中,如下所示:

Issues:

  - {"ID" : "1", "Name" : "Missing Documentation", "Notes" : "Issue1 Notes"}
  - {"ID" : "2", "Name" : "Software Bug", "Notes" : "Issue2 Notes, blah, blah"}
  - {"ID" : "2", "Name" : "System Not Ready", "Notes" : "Issue3 Notes, etc"}
  // etc...

因此,我希望“Issues”保存这些JavaScript对象中的每一个,这样我就可以只说Issues[0].Name或Issues[2].ID等。
我已经创建了外部Issues JavaScript对象:

var jsonIssues = {};

我需要在其中添加一个JavaScript对象,但不知道如何添加。我希望能够说:

Issues<code here>.Name = "Missing Documentation";
Issues<code here>.ID = "1";
Issues<code here>.Notes = "Notes, notes notes";

有什么办法吗?谢谢。

**UPDATE:**根据给出的答案,声明一个数组,并根据需要推送JavaScript对象:

var jsonArray_Issues = new Array();

jsonArray_Issues.push( { "ID" : id, "Name" : name, "Notes" : notes } );

感谢您的回复。

nc1teljy

nc1teljy1#

var jsonIssues = []; // new Array
jsonIssues.push( { ID:1, "Name":"whatever" } );
// "push" some more here
6ju8rftf

6ju8rftf2#

由于我的第一个对象是原生JavaScript对象(像对象列表一样使用),push在我的场景中不起作用,但我通过添加新键解决了这个问题,如下所示:

MyObjList['newKey'] = obj;

除此之外,了解如何删除之前插入的相同对象可能会很有用:

delete MyObjList['newKey'][id];

希望它能像帮助我一样帮助别人。

pgvzfuti

pgvzfuti3#

var jsonIssues = [
 {ID:'1',Name:'Some name',Notes:'NOTES'},
 {ID:'2',Name:'Some name 2',Notes:'NOTES 2'}
];

如果要向数组中添加,则可以执行以下操作

jsonIssues[jsonIssues.length] = {ID:'3',Name:'Some name 3',Notes:'NOTES 3'};

或者你可以使用其他家伙发布的推送技术,这也很好。

w8f9ii69

w8f9ii694#

//递归地将对象2合并到对象1中

$.extend( true, object1, object2 );

//将对象2合并到对象1中

$.extend( object1, object2 );

https://api.jquery.com/jquery.extend/

nbewdwxp

nbewdwxp5#

如果它不是一个对象数组,你可以这样做:

let student= {
  name : 'Mr. Anderson',
  id: 35
}

student['grade'] = 10; //for a property.

结果:

student= {
  name : 'Mr. Anderson',
  id: 35,
  grade:10
}

您还可以添加对象:

let student= {
 personalData:{
  //personal data key-value
 }
}

let academicData = {
 //academic data key-value
}

student['academicData'] = academicData;

结果:

student{
        personalData{},
        academicData{}
    }
wmtdaxz3

wmtdaxz36#

jsonIssues = [...jsonIssues,{ID:'3',Name:'name 3',Notes:'NOTES 3'}]
ht4b089n

ht4b089n7#

如果你在第一个obj中有属性,你必须向它添加你的obj,那么Object.assign()会擦除它。
为了避免这种损失,我在下面写了一个函数。注意,它通过引用复制嵌套对象。
首先,你应该把所有你想添加到你的对象中的对象添加到一个arr中。你可以通过arr.push()很容易地做到这一点。然后使用Fn。

function addMyObjs (objInit, arrWithObjs) {
    let map = new Map();
    for (let [key, value] of Object.entries(objInit)) {
        map.set(key, value);
    }
    arrWithObjs.forEach((item) => {
        for (let [key, value] of Object.entries(item)) {
            map.set(key, value);
        }
    });
    return Object.fromEntries(map);
}

let objSecond = {id: 2,};

let obj = {
    name: "Tolya",
    age: 33,
    sex: "man",
};

let obj3 = {"fruits": {"apples": true, "plums": false,}};

let arr = [obj, obj3];

objSecond = addMyObjs(objSecond, arr);

相关问题