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
4 Answers
Reset to default 10You 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
版权声明:本文标题:javascript - How to combine objects into one object in a loop - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1741497562a2381903.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论