我有个别对象,如:
Object {au: Object}
Object {eu: Object}
Object {fr: Object}
等
如何将它们组合起来,使它们看起来像这样:
Object {au: Object, eu: Object, fr: Object, uk: Object, us: Object}
我将数据放在for循环中,如下所示:
for(var i = 0; i < storesListArray.length; ++i) {
var storeListArray = storesListArray[i];
for(var j = 0; j < storeListArray.length; ++j) {
console.log(storeListArray[j]);
}
}
任何帮助最好的方法都会非常棒,谢谢你。
答案 0 :(得分:1)
另一种方式
var list = [
{en: {a: "something", b: "something else"}},
{fr: {a: "something", b: "something else"}},
{au: {a: "something", b: "something else"}}
]
var bigObj = list.reduce(function (o, n) {
for (var key in n) o[key] = n[key];
return o;
}, {});
console.log(bigObj);
&#13;
答案 1 :(得分:0)
您可以使用Object.assign
和spread syntax ...
来获取包含数组部分的单个对象。
var array = [{ au: {} }, { eu: {} }, { fr: {} }],
object = Object.assign({}, ...array);
console.log(object);
答案 2 :(得分:-1)
您可以使用jQuery.extend将多个对象合并为一个。第一个参数是目标对象,以下参数是您要添加到目标的参数:
var oAll = $.extend({},objA, objB, objC ... )
答案 3 :(得分:-1)
我首先使用Array.prototype.forEach迭代数组的元素。
如果您愿意使用jQuery,jQuery.extend在复制对象时非常有用。
var storesListArray = [
{en: {a: "something", b: "something else"}},
{fr: {a: "something", b: "something else"}},
{au: {a: "something", b: "something else"}}
]
var ans = {};
storesListArray.forEach(function(element){
$.extend(true, ans, element);
})
console.log(ans);
console.log("en:");
console.log(ans.en);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;