Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javascript中将一个对象添加到另一个对象_Javascript_Angularjs - Fatal编程技术网

在javascript中将一个对象添加到另一个对象

在javascript中将一个对象添加到另一个对象,javascript,angularjs,Javascript,Angularjs,我有两个对象,我需要将一个对象添加到另一个对象 var loc={ leftArray:[], topArray:[], 底部数组:[], rightArray:[] } var obj={ id:“行政长官”, 图标:“logo/image.png”, 名称:"行政长官", 类型:“类型2”, 版本:3.4 } var obj={ id:“行政长官”, 图标:“logo/image.png”, 名称:"行政长官", 类型:“类型2”, 版本:3.4, leftArray:[], topArr

我有两个对象,我需要将一个对象添加到另一个对象

var loc={
leftArray:[],
topArray:[],
底部数组:[],
rightArray:[]
}
var obj={
id:“行政长官”,
图标:“logo/image.png”,
名称:"行政长官",
类型:“类型2”,
版本:3.4
}
var obj={
id:“行政长官”,
图标:“logo/image.png”,
名称:"行政长官",
类型:“类型2”,
版本:3.4,
leftArray:[],
topArray:[],
底部数组:[],
rightArray:[]
}

有什么简单的方法可以做到这一点吗?

您可以使用如下扩展语法合并它们

let objOne = { a: 'hi' }
let objTwo = { b: 'hello' }
let objOneAndTwo = { ...objOne, ...objTwo }; // { a: 'hi', b: 'hello' }
或使用对象分配:

let objOneAndTwo = Object.assign({}, a, b)
请注意,如果您的对象具有相同名称的属性,则使用这种方式,优先级将与最正确的对象(在本例中为objectTwo)一起使用

其他信息:


您可以使用Object.assign()完成此操作

或者只是

Object.assign(obj, loc);

正如T.J.Crowder在他的评论中所建议的那样。

也许您正在寻找
var obj=Object。分配(obj,loc)
是解决此问题的方法。如果您有该库,您也可以使用从lodash合并。。。使用类似obj.leftArray=[];自动生成新的obj.Just FWIW,在这种情况下不需要赋值,只需
Object.assign(obj,loc)就足够了。(你当然不会想要
var
,因为
obj
已经声明了。)@t.J.Crowder是的,你没有重新声明变量是对的。我不知道您不需要分配Object.assign()的结果。谢谢你的信息。我相应地编辑了答案。
Object.assign
返回传入的第一个对象。这样您就可以传入一个对象初始值设定项(“literal”),如下所示:
constfoo=object.assign({},something,等等)这只是
constfoo={}的一行程序版本;分配(foo,某物)感谢您的贡献,欢迎!
Object.assign(obj, loc);