我有一个不可变的地图列表,其中包含(以及其他键)名称'键。我想获得一系列名字。
我的地图列表如下所示:[{'name': 'John', 'age': 23}, {'name': 'Eli', 'age': 30}]
我试过这样做:
var result = myObject.map(function(a) {return a.name;});
但那不起作用。没有返回数组。
如果我result.toArray
,我会[undefined
,undefined
]
答案 0 :(得分:3)
假设您有一个不可变映射列表,您需要使用get
函数来检索名称。所以以下内容应该有效:
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"]
访问地图的值就好像它是一个普通的javascript对象一样无效:
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