我有两个对象:
obj1 = { 'id1': 1, 'name1': 'anyone1', 'birth1': 22, 'year1': 1993 };
obj2 = { 'id2': 1, 'name2': 'anyone', 'birth2': 22, 'year2': 1993 };
我想创建一个像:
这样的数组ARRAY = {
obj1 = {
'id1': 1, 'name1': 'anyone1', 'birth1': 22, 'year1': 1993
},
obj2 = {
'id2': 1, 'name2': 'anyone', 'birth2': 22, 'year2': 1993
}
}
我想称之为' ARRAY.obj1.id1
'
我该怎么做?
答案 0 :(得分:2)
解决方案是创建一个包含两个object
的新keys
:
obj1 = { 'id1': 1, 'name1': 'anyone1', 'birth1': 22, 'year1': 1993 };
obj2 = { 'id2': 1, 'name2': 'anyone', 'birth2': 22, 'year2': 1993 };
var obj={};
obj["obj1"]=obj1;
obj["obj2"]=obj2;
console.log(obj);
console.log(obj.obj1.id1);

答案 1 :(得分:0)
使用Object.assign
的另一个例子:
obj1 = { 'id1': 1, 'name1': 'anyone1', 'birth1': 22, 'year1': 1993 };
obj2 = { 'id2': 1, 'name2': 'anyone', 'birth2': 22, 'year2': 1993 };
var obj3 = Object.assign({}, { obj1: obj1 }, { obj2: obj2} );
console.log(obj3);
答案 2 :(得分:0)
此外,由于这是一个角度问题,您还可以使用angular.extend
函数:
var obj1 = { 'id1': 1, 'name1': 'anyone1', 'birth1': 22, 'year1': 1993 };
var obj2 = { 'id2': 1, 'name2': 'anyone', 'birth2': 22, 'year2': 1993 };
var obj3 = angular.extend({}, { obj1: obj1, obj2: obj2 } );
console.log(obj3);

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
&#13;
答案 3 :(得分:0)
使用
var myNamedStuff = new Map;
myNamedStuff.set("obj1", obj1);
等
您要求的是Map
。我们在ES6之前使用普通对象作为映射,但是我们遇到了与名称冲突相关的各种安全风险和异常,尤其是当特定于供应商的属性出现在Object.prototype
中时。 ES6引入了Map
,因此我们再也不会这样做,而是像我们真正想要的那样保证干净的名称空间。