Javascript Angularjs连接两个对象
我有两个目标:Javascript Angularjs连接两个对象,javascript,angularjs,arrays,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'
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
”
我该怎么做 解决方案是使用两个
键创建一个新的对象
:
obj1={'id1':1,'name1':'anyone1','birth1':22,'year1':1993};
obj2={'id2':1,'name2':'any','birth2':22,'year2':1993};
var obj={};
obj[“obj1”]=obj1;
obj[“obj2”]=obj2;
控制台日志(obj);
console.log(obj.obj1.id1)
解决方案是使用两个键创建一个新的对象
:
obj1={'id1':1,'name1':'anyone1','birth1':22,'year1':1993};
obj2={'id2':1,'name2':'any','birth2':22,'year2':1993};
var obj={};
obj[“obj1”]=obj1;
obj[“obj2”]=obj2;
控制台日志(obj);
console.log(obj.obj1.id1)代码>另一个示例使用:
obj1={'id1':1,'name1':'anyone1','birth1':22,'year1':1993};
obj2={'id2':1,'name2':'any','birth2':22,'year2':1993};
var obj3=Object.assign({},{obj1:obj1},{obj2:obj2});
控制台日志(obj3)代码>另一个示例使用:
obj1={'id1':1,'name1':'anyone1','birth1':22,'year1':1993};
obj2={'id2':1,'name2':'any','birth2':22,'year2':1993};
var obj3=Object.assign({},{obj1:obj1},{obj2:obj2});
控制台日志(obj3)代码>此外,由于这是一个角度问题,您还可以使用以下函数:
var obj1={'id1':1,'name1':'anyone1','birth1':22,'year1':1993};
var obj2={'id2':1,'name2':'any','birth2':22,'year2':1993};
var obj3=angular.extend({},{obj1:obj1,obj2:obj2});
控制台日志(obj3)代码>
此外,由于这是一个角度问题,您还可以使用以下函数:
var obj1={'id1':1,'name1':'anyone1','birth1':22,'year1':1993};
var obj2={'id2':1,'name2':'any','birth2':22,'year2':1993};
var obj3=angular.extend({},{obj1:obj1,obj2:obj2});
控制台日志(obj3)代码>
使用
等等
你要的是一张地图
。在ES6之前,我们使用普通对象作为映射,但是我们遇到了与名称冲突相关的各种安全风险和异常,特别是当供应商特定的属性出现在Object.prototype
中时。ES6引入了映射
,这样我们就再也不会这样做了,取而代之的是我们真正想要的保证干净的名称空间。使用
等等
你要的是一张地图
。在ES6之前,我们使用普通对象作为映射,但是我们遇到了与名称冲突相关的各种安全风险和异常,特别是当供应商特定的属性出现在Object.prototype
中时。ES6引入了映射
,这样我们就再也不会这样做了,取而代之的是保证干净的名称空间,就像我们真正想要的那样。这很让人困惑。。。为什么要将对象命名为“数组”?您是否有意误导其他开发人员?:D@Canastro,例如,请参见PHP中的关联数组。它们在那里的使用非常类似于我们在JS中使用对象文本。但我同意,名字有时很重要。是的,在php中我们有关联数组,在javascript中我更喜欢称之为map
。我非常喜欢在javascript中使用映射,我喜欢normalizer
。我这样做是因为,我创建了一个这样的复合对象,这让人非常困惑。。。为什么要将对象命名为“数组”?您是否有意误导其他开发人员?:D@Canastro,例如,请参见PHP中的关联数组。它们在那里的使用非常类似于我们在JS中使用对象文本。但我同意,名字有时很重要。是的,在php中我们有关联数组,在javascript中我更喜欢称之为map
。我非常喜欢在javascript中使用映射,我喜欢normalizer
。我这样做是因为,我创建了一个复合对象,就像真的不应该命名那个对象数组一样。我不知道这个问题解决了什么;如果它满足OP,那很好,但是OP的问题是他不知道对象在js中是如何工作的。从技术上讲,你甚至不需要方括号和引号来让一个对象做到这一点。但是假设我们提出了一个名为obj[“hasOwnProperty”]
的元素。这就是为什么我们在ES6中有Map
类,而OP应该使用这个类。@kfm,不要忘记接受答案以帮助其他人。真的不应该命名那个对象数组。我不知道这个问题解决了什么;如果它满足OP,那很好,但是OP的问题是他不知道对象在js中是如何工作的。从技术上讲,你甚至不需要方括号和引号来让一个对象做到这一点。但是假设我们提出了一个名为obj[“hasOwnProperty”]
的元素。这就是为什么我们在ES6中有Map
类,OP应该用它来代替。@kfm,不要忘记接受答案以帮助其他人。
var myNamedStuff = new Map;
myNamedStuff.set("obj1", obj1);