Angularjs连接两个对象

时间:2017-02-14 20:52:20

标签: javascript angularjs arrays

我有两个对象:

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'

我该怎么做?

4 个答案:

答案 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;
&#13;
&#13;

答案 3 :(得分:0)

使用

var myNamedStuff = new Map;
myNamedStuff.set("obj1", obj1);

您要求的是Map。我们在ES6之前使用普通对象作为映射,但是我们遇到了与名称冲突相关的各种安全风险和异常,尤其是当特定于供应商的属性出现在Object.prototype中时。 ES6引入了Map,因此我们再也不会这样做,而是像我们真正想要的那样保证干净的名称空间。