在原生JavaScript Array.forEach
回调函数中,我们的参数为:currentValue[, index[, array]]
。
在Immutable.js forEach中,我似乎无法获取索引值。我认为它曾经遵循Array.forEach
的模式,但是,他们已经对其进行了更改。
我的问题是:如何在index
的每次迭代中得到forEach
。我们是否要手动增加一个外部(函数外部)变量以存储值?
示例代码:
const anObj = Map({
a : "a",
b : "b"
});
let i;
// immutable.js way
anObj.forEach((v, k, collection ) => {
// body of func
}
答案 0 :(得分:1)
var index = anObj.indexOf(v);
应返回给定值的索引。 与增量变量相比,效率可能较低。
答案 1 :(得分:0)
https://github.com/facebook/immutable-js/issues/586
不幸的是,似乎开发团队决定根据上述链接偏离本机Javascript签名。因此,根据LeeByron的评论,实质上是推荐的方法:
var index = 0;
myOrderedMap.forEach(function (item) {
// do what you need to do with item and index
index += 1;
});