web-dev-qa-db-ja.com

オブジェクトの配列をキーと値のペアを持つオブジェクトに変換する方法

オブジェクトの配列をjavascriptのキーと値のペアを持つオブジェクトに変換したいと思います。

var arr=[{"name1":"value1"},{"name2":"value2"},...}];

どうすればそれを次のようなオブジェクトに変換できますか

{"name1":"value1","name2":"value2",...}

ほとんどのブラウザでサポートされるようにしたいと思います。

6
HiddenMarkow

Object.assign および 構文の拡張... オブジェクトを含む指定された配列で単一のオブジェクトを作成する場合。

var array = [{ name1: "value1" }, { name2: "value2" }],
    object = Object.assign({}, ...array);
    
console.log(object);
22
Nina Scholz

この単純なロジックを試してください

var arr=[{"name1":"value1"},{"name2":"value2"}];
var obj = {}; //create the empty output object
arr.forEach( function(item){ 
   var key = Object.keys(item)[0]; //take the first key from every object in the array
   obj[ key ] = item [ key ];  //assign the key and value to output obj
});
console.log( obj );
3
gurvinder372

配列に対してreduceを実行して、新しいオブジェクトを返すことができます。ただし、プロパティが同じ場合は上書きされることを覚えておくことが重要です。

const newObject = array.reduce((current, next) => {
  return { ...current, ...next};
}, {})

Es6ではなくes5を使用している場合:

var newObject = array.reduce(function(current, next){
  return Object.assign({}, current, next);
}, {})
2
Benji Lees

Array#forEach および Object.keys

var arr = [{"name1": "value1"},{"name2": "value2"}];
var obj = {};
arr.map(k => Object.keys(k).forEach(a => obj[a] = k[a]))
console.log(obj)
1
prasanth

for ... in ループを使用する

_var arr=[{"name1":"value1"},{"name2":"value2"}];

var obj = {};
for (var i in arr) {
  obj[Object.keys(arr[i])] = arr[i][Object.keys(arr[i])];
}

console.log(obj);_

Array.map() メソッドを_ES6_で使用する

_var arr=[{"name1":"value1"},{"name2":"value2"}];

var obj = {};

arr.map(item => obj[Object.keys(item)] = item[Object.keys(item)]);

console.log(obj);_

Object.assign() メソッドと_ES6_ spreaqd(...)代入の使用

_let arr=[{"name1":"value1"},{"name2":"value2"}];

let obj = Object.assign({}, ...arr);

console.log(obj);_
0
Rohit Jindal

これを試して:

var arr=[{"name1":"value1"},{"name2":"value2"}];
 var new_arr=[];
 $.each(arr,function(index){
   $.each(arr[index],function(key,value){
    var nw_obj={};
    nw_obj[key]=value;
    new_arr.Push(nw_obj);
   });
 });
console.log(JSON.stringify(new_arr));
0
Gayathri