admin管理员组

文章数量:1291047

I have individual objects like:

Object {au: Object}
Object {eu: Object}
Object {fr: Object}

etc

How do I bine them so they look like this:

Object {au: Object, eu: Object, fr: Object, uk: Object, us: Object} 

I have the data in a for loop like so:

 for(var i = 0; i < storesListArray.length; ++i) {
     var storeListArray = storesListArray[i];
     for(var j = 0; j < storeListArray.length; ++j) {
         console.log(storeListArray[j]);
     }
 }

Any help one the best way would be awesome thank you.

I have individual objects like:

Object {au: Object}
Object {eu: Object}
Object {fr: Object}

etc

How do I bine them so they look like this:

Object {au: Object, eu: Object, fr: Object, uk: Object, us: Object} 

I have the data in a for loop like so:

 for(var i = 0; i < storesListArray.length; ++i) {
     var storeListArray = storesListArray[i];
     for(var j = 0; j < storeListArray.length; ++j) {
         console.log(storeListArray[j]);
     }
 }

Any help one the best way would be awesome thank you.

Share Improve this question edited Apr 6, 2017 at 19:20 JJJ 33.2k20 gold badges94 silver badges103 bronze badges asked Apr 6, 2017 at 19:15 user2200113user2200113 551 silver badge5 bronze badges 2
  • developer.mozilla/en-US/docs/Web/JavaScript/Reference/… – Meirion Hughes Commented Apr 6, 2017 at 19:19
  • 2 Possible duplicate of How to concatenate properties from multiple JavaScript objects – JJJ Commented Apr 6, 2017 at 19:20
Add a ment  | 

4 Answers 4

Reset to default 10

You could use Object.assign and spread syntax ... for getting a single object with the parts of the array.

var array = [{ au: {} }, { eu: {} }, { fr: {} }],
    object = Object.assign({}, ...array);

console.log(object);

Another way

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

I would begin by using the Array.prototype.forEach to iterate over the elements of the array.

If you're willing to use jQuery, the jQuery.extend can be very useful in copying objects.

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);
<script src="https://ajax.googleapis./ajax/libs/jquery/2.1.1/jquery.min.js"></script>

You can use jQuery.extend to merge several objects into one. The first parameter is the target object and the following parameters are the ones you want to add to the target:

 var oAll = $.extend({},objA, objB, objC ... )

本文标签: javascriptHow to combine objects into one object in a loopStack Overflow