如何将对象组合到循环中的一个对象中

时间:2017-04-06 19:15:31

标签: javascript object

我有个别对象,如:

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]);
     }
 }

任何帮助最好的方法都会非常棒,谢谢你。

4 个答案:

答案 0 :(得分:1)

另一种方式

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

答案 1 :(得分:0)

您可以使用Object.assignspread 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在复制对象时非常有用。

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