Javascript 如何在Immutable中的'forEach'迭代中获取索引
在本机javascriptJavascript 如何在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.
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对象。回答不错,绝对是一个选项,在我看来也是一个更干净的选项。