我有一个列表的不可变的js地图。我想将其转换为每个键的第一项列表
{keyA:[item1A,item2A,item3A],keyB:[item1B,item2B,item3B]}
到
[item1A,item1B]
答案 0 :(得分:2)
使用Immutable肯定有办法做到这一点,它甚至是一个单行。您只需使用DROP TABLE #tbl;
将地图转换为List
,然后根据需要使用toList()
和/或map
。
filter
请注意,此代码容易出错。例如,如果item2不是List,该怎么办?您可以通过使用Immutable的const myMapOfLists = fromJS(
{
item1: [{id: 1}, {id: 2}, {id: 3}],
item2: [{id: 4}, {id: 5}, {id: 6}],
item3: [{id: 7}, {id: 8}, {id: 9}],
}
);
const myNewList = myMapOfLists.toList().map(item => item.get(0));
// console.log(myNewList.toJS());
// => [{id: 1}, {id: 4}, {id: 7}];
方法检查项目是否为List来简单地避免这些问题。