正如标题所述,我想获得特定项目的索引。有没有办法做到这一点?
const key = 1
const map = new Immutable.OrderedMap([5, 'a'], [3, 'b'], [1, 'c'])
因此,在这种情况下,key
的索引将是2
。
答案 0 :(得分:3)
您可以从地图中获取按键序列:
let index = map.keySeq().findIndex(k => k === key);
或者,您可以显式迭代键并比较它们:
function findIndexOfKey(map, key) {
let index = -1;
for (let k of map.keys()) {
index += 1;
if (k === key) {
break
}
}
return index;
}
答案 1 :(得分:3)
最好的方法就是使用immutablejs inners的方式。
像这样:
const index = orderedMap._map.get(k);
https://github.com/facebook/immutable-js/blob/master/src/OrderedMap.js#L43
答案 2 :(得分:0)
如果您需要键,值以及索引,则可以遍历entrySeq
orderedMap.entrySeq().forEach((tuple,i) => console.log(`Index ${i} \n Key ${tuple[0]} \n Value ${tuple[1]}`)