2017-11-07 5 views
1

私が持っている、私はフォーマットの下に変換したいオブジェクトJavascriptで配列をオブジェクトに変更するにはどうすればよいですか?

[ 
    { regionName:'Alabama',code:'AL', value: 89 }, 
    { regionName:'Alaska',code:'AK', value: 112 }, 
    { regionName:'Arizona',code:'AZ', value: 101 }, 
    { regionName:'Arkansas',code:'AR', value: 123 } 
] 

のリスト - これはJSで

{ 
    AL: { value: 89 }, 
    AK: { value: 112 }, 
    AZ: { value: 101 }, 
    AR: { value: 123 } 
} 

を実現することができますか?

+0

他のオブジェクト層には理由がありますか?単に 'value'を使うつもりなら' AL:89'だけではないのですか?私はあなたが後でそれに追加すると思いますか? – Matt

答えて

5

あなたが所与アレイからすべての項目に適用されるparameterとしてcallback提供する機能を通すことによってmap方法を使用することができます。

let array=[ { regionName:'Alabama',code:'AL', value: 89 }, { regionName:'Alaska',code:'AK', value: 112 }, { regionName:'Arizona',code:'AZ', value: 101 }, { regionName:'Arkansas',code:'AR', value: 123 } ]; 
 

 
array = Object.assign(...array.map(({ code, value }) => ({ [code]: {value:value }}))); 
 
console.log(array);

+0

本当にかわいい:) – sjahan

2

あなたは最終的な結果には、新しいkey(AL、AKまたはAZ)を追加し、すべての繰り返しでそうarray.prototype.reduceを使用することができます。

const arr = [ 
 
    { regionName:'Alabama',code:'AL', value: 89 }, 
 
    { regionName:'Alaska',code:'AK', value: 112 }, 
 
    { regionName:'Arizona',code:'AZ', value: 101 }, 
 
    { regionName:'Arkansas',code:'AR', value: 123 } 
 
] 
 
    
 
const result = arr.reduce((prev, curr) => { 
 
    return { 
 
    ...prev, 
 
    [curr.code]: { value: curr.value }, 
 
    } 
 
}, {}) 
 

 
console.log(result)

1

私は遅れるかもしれないが、これは、単純なArray.prototype.map()

var array_of_objects = [ 
 
    { regionName:'Alabama',code:'AL', value: 89 }, 
 
    { regionName:'Alaska',code:'AK', value: 112 }, 
 
    { regionName:'Arizona',code:'AZ', value: 101 }, 
 
    { regionName:'Arkansas',code:'AR', value: 123 } 
 
]; 
 
var required = {}; 
 
var result = array_of_objects.map(function(obj){ 
 
    return (required[obj.code] = {value:obj.value}); 
 
}) 
 

 
console.log(required);

結果で動作するはずです:

{ 
    "AL": {"value": 89}, 
    "AK": {"value": 112}, 
    "AZ": {"value": 101}, 
    "AR": {"value": 123} 
} 
関連する問題