简体   繁体   中英

Convert array of objects to object of objects

What I have:

[{title: hi}, {title: ha}, {title: ho}]

What I want:

{title: hi}, {title: ha}, {title: ho}

This is because, when I try to add the array to a database, like:

"$push" : { "paises" : array}

, it will be:

Array of objects

But I want this:

Object of objects

The solution:

var array = [{title: 'hi'}, {title: 'ha'}, {title: 'ho'}];

var object = {};

var arrayToObject = function(array, object){
  array.forEach(function(element, index){
    object[index] = element;
  })
  console.log(object);
}

arrayToObject(array, object);

https://jsfiddle.net/2r903tdh/

{title: hi}, {title: ha}, {title: ho}

This is not object of objects. These are just objects.

If what you want is a way to handle each object one by one and insert them into your database you could do something like this.

[{title: hi}, {title: ha}, {title: ho}].forEach(function(obj){
  //do something with object
});

If you are using ES6 you can use spread operator.

...[{title: hi}, {title: ha}, {title: ho}] = {title: hi}, {title: ha}, {title: ho}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM