微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – 获取Map.prototype.forEach()中的索引

Map.prototype.forEach采用两个参数进行回调:值和键.
是否可以获取每个条目的索引,类似于Array.prototype.forEach((value,index)=> {})

解决方法

Map.prototype.forEach takes callback with two params: value and key.

不,它是invoked with three arguments,就像Array#forEach一样.第三是地图.

Is it possible to get the index of each entry,similar to Array.prototype.forEach(functcion(value,index) => {})

(相当确定其中的功能部分并不意味着存在.)

这就是关键所在.没有单独的“索引”.

Map的迭代顺序是为各种迭代操作定义的,但是没有直接的迭代结构可以为您提供该顺序中条目的索引(而不是键).订单是原始密钥插入顺序,例如:

const m = new Map();
m.set("x",1);
m.set("q",2);
m.set("z"),3);
m.set("x","one");

如果我们遍历该映射,我们将按照键首次添加的顺序看到键,因此“x”,“q”,“z”.请注意,使用ke“x”更改条目的值不会将其移动到结尾.

Map#forEach(和for-of以及使用map迭代器的任何其他内容)遵循迭代顺序,因此如果您根据该顺序考虑索引,则可以自己跟踪索引:

const m = new Map();
m.set("one","uno");
m.set("two","due");
m.set("three","tre");
let index = 0;
m.forEach((value,key) => {
  console.log(index++,key,value);
});

或者,您可以获取一个映射条目数组(作为[key,value]数组):

let entries = Array.from(m.entries());

…并使用该数组的索引:

我只是不确定它是什么给你买的.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐