Javascript 如何在Immutable中的'forEach'迭代中获取索引

Javascript 如何在Immutable中的'forEach'迭代中获取索引,javascript,object,immutable.js,Javascript,Object,Immutable.js,在本机javascriptArray.forEach回调函数中,我们有如下参数:currentValue[,index[,Array]] 在中,我似乎无法获得索引值。我认为它过去一直遵循数组的模式。但是,forEach改变了它 我的问题是:如何在forEach的每次迭代中获得index。我们是否要手动递增外部(函数外部)变量以存储值 示例代码: const anObj = Map({ a : "a", b : "b" }); let i; // immutable.js way anObj.

在本机javascript
Array.forEach
回调函数中,我们有如下参数:
currentValue[,index[,Array]]

在中,我似乎无法获得索引值。我认为它过去一直遵循数组的模式。但是,forEach改变了它

我的问题是:如何在
forEach
的每次迭代中获得
index
。我们是否要手动递增外部(函数外部)变量以存储值

示例代码:

const anObj = Map({
 a : "a",
 b : "b"
});
let i;
// immutable.js way
anObj.forEach((v, k, collection ) => {
 // body of func
}

var指数=anObj.indexOf(v)

应该返回给定值的索引。 与增量变量相比,可能效率较低。

不幸的是,根据上面的链接,开发团队似乎决定偏离本机Javascript签名。因此,根据LeeByron的评论,本质上推荐的方法是:

var index = 0;
myOrderedMap.forEach(function (item) {
  // do what you need to do with item and index
  index += 1;
});

为什么不为
循环使用
<代码>用于(设i=0;i
。另外,Map是HTML5中现有的一个类,你确定要继续使用覆盖本机方法的方法吗?@BRO_THOM这是一个不可变的Map对象。回答不错,绝对是一个选项,在我看来也是一个更干净的选项。