2016-09-21 38 views
1

私はここに示すようにオブジェクトの配列を持っています。オブジェクトの配列を配列リスト(javascript)に変換します

states: Array[3] 
[0-2] 
0:Object 
    Value: "34343" 
1:Object 
    Value: "2332" 
2:Object 
    Value: "2333" 

上記の配列を以下のように配列リストに変換したいと考えています。誰かが私にこのようなjavascriptで何かを達成する方法を教えてくださいできますか?

states: ["34343", "2332", "2333"] 
+1

パーフェクトユースケース'Array#map' ..' arr.map((el)=>(el.Value)) ' – Rayon

+0

@ Rayon-あなたは私の現在のコンテキストを詳しく教えてください... –

+0

どんな種類のループも使用できます。 – Barmar

答えて

1

var inputArray = [{ 
 
    value: 1 
 
}, { 
 
    value: 2 
 
}]; 
 

 
var normalizedArray = inputArray.map(function(obj) { 
 
    return obj.value; 
 
}); 
 

 
console.log(normalizedArray.join(","))

あなたはコメントで提案されているように、これはやってArray.map

+1

なぜデモをStack Snippetの代わりにjsfiddleに入れるのですか? – Barmar

0

またはES6

var stateObject = [{value : 123}, {value : 654}, {value : 654}]; 
var stateArray = stateObject.map(item => item.value); 
console.log(stateArray); // [ 123, 654, 654 ] 
1

で素敵な方法を使用することができます。

(VARの編曲は、あなたの配列です)

new_arr = arr.map(el => el.Value) 

これは、最新のES6機能array.prototype.mapと矢印機能を利用したきちんとしたソリューションです。

プロジェクトでes6を使用していない場合は、普通の古いes5で固まっているかもしれません。おそらくアンダースコアやロダッシュがありますか?その場合は:あなたは、アンダースコアを持っていない場合

new_arr = _.map(arr, function(el) { 
    return el.Value; 
}); 

がこれを失敗し、何ES6は、あなたがそれを行うためにループを使用してに頼る必要はありませんも自分で「古い」方法:

new_arr = [] 
for (var i = 0, j = arr.length; i < j; i++) { 
    new_arr.push(arr[i].Value); 
} 
+0

[この優秀な回答](/ a/9329476/2487517)に記載されている配列を反復処理するには、さまざまな(ES5 +)方法があります。 – Tibrogargan

関連する問題