如何在没有forEach的情况下迭代Javascsript映射? 如何在JavaScript map < /COD>不使用前缀(这样我就可以在代码中中断中间,或者有一种方法可以从前缀 破译?不能使用对象,因为在某个浏览器上有时是随机的,其中 map < /Cord>排序被定义。< /P> let map = new Map(); map.set(1,'google.com'); // very long list map.set(12312,/[^a-z]+/); let match = 'nothing'; for(let z in map) { // doesn't work, but works for object if( foo.match(z) ) { match = map.get(z); // map[z]; on object break; } }
我找到的最接近的东西是使用如何在没有forEach的情况下迭代Javascsript映射? 如何在JavaScript map < /COD>不使用前缀(这样我就可以在代码中中断中间,或者有一种方法可以从前缀 破译?不能使用对象,因为在某个浏览器上有时是随机的,其中 map < /Cord>排序被定义。< /P> let map = new Map(); map.set(1,'google.com'); // very long list map.set(12312,/[^a-z]+/); let match = 'nothing'; for(let z in map) { // doesn't work, but works for object if( foo.match(z) ) { match = map.get(z); // map[z]; on object break; } },javascript,loops,dictionary,break,Javascript,Loops,Dictionary,Break,我找到的最接近的东西是使用.keys() 使用。提供三个迭代器: 对于它们的条目,作为[key,value]数组提供。这是映射的默认迭代器,也可以通过entries()方法获得 对于它们的键:keys() 对于其值:values() 下面是一个循环遍历条目的示例,将它们分解为key和value常量: for (const [key, value] of map) { // `key` is the key of the entry, `value` is the value if
.keys()
使用。提供三个迭代器:
[key,value]
数组提供。这是映射的默认迭代器,也可以通过entries()
方法获得keys()
values()
key
和value
常量:
for (const [key, value] of map) {
// `key` is the key of the entry, `value` is the value
if (/*...some condition...*/) {
break;
}
}
(不过,您不必解构,您可以对(映射的常量条目)使用,然后对键使用entry[0]
,对值使用entry[1]
。)
或循环键:
for (const key of map.keys()) {
// ...
或用于循环值:
for (const value of map.values()) {
// ...
将默认迭代器应用于示例代码:
let map = new Map();
map.set(1,'google.com');
// very long list
map.set(12312,/[^a-z]+/);
let match = 'nothing';
for (const [key, value] of map) {
if (foo.match(key)) {
match = value;
break;
}
}
哇,这对我来说是新的,我最后一次学习javascript大约是12年前XD@Kokizzu-嘿,自2015年以来发生了很多变化。:-)巧合的是,我写了一本关于这些变化的书,它涵盖了从ES2015到ES2020(以及一些ES2021)中添加的所有内容。如果您感兴趣,请在我的个人资料中添加链接。快乐编码!
let map = new Map();
map.set(1,'google.com');
// very long list
map.set(12312,/[^a-z]+/);
let match = 'nothing';
for (const [key, value] of map) {
if (foo.match(key)) {
match = value;
break;
}
}