2017-05-30 1 views
0

私は(他のキーの中でも)「名前」キーを持つ不変のマップリストを持っています。私は名前の配列を取得しようとしています。マップのキーで値を取得不変のマップのリスト

私のリストは次のようになります。[{'name': 'John', 'age': 23}, {'name': 'Eli', 'age': 30}]

私はこれやって試してみました:

var result = myObject.map(function(a) {return a.name;});

をそれは働いていません。配列を返さない。

は私がresult.toArrayをすれば、私はあなたが不変のマップのリストを持っていると仮定すると、[undefinedundefined]

+0

いくつかの変数に 'map'の戻り値を割り当てる必要があります。 –

+4

コードが動作していることを確認してくださいhttps://fiddle.jshell.net/bgesk3u6/ – prasanth

+0

'result.toArray'を行う必要はありません。結果自体は配列です。 –

答えて

3

を取得し、あなたが名前を取得するために、get機能を使用する必要があります。だから、次は動作するはずです:それは通常のJavaScriptオブジェクトは動作しませんでしたかのように

const list = Immutable.fromJS([{ 'name': 'John', 'age': 23 }, { 'name': 'Eli', 'age': 30 }]); 
const result = list.map(a => a.get('name'))); 
console.log(result); // ["John", "Eli"] 

は、マップの値へのアクセス:

const map = Immutable.Map({ name: 'John', age: 23 }); 
console.log(map.name) // undefined 
console.log(map.get('name')) // John 

しかし、すべての名前が固定されていると仮定すると、あなたは不変のレコードを使用することができます

const Person = Immutable.Record({ name: '', age: 0 }); 
const person = new Person({ name: 'John', age: 23 }); 
console.log(person.name) // John 
console.log(person.get('name')) // John 
関連する問題