[如何在不使用Map
的情况下遍历javascript forEach
(所以我可以在中间使用break
,或者有一种从break
到forEach
的方法吗?由于顺序有时是随机的,因此无法使用对象在某些Map
顺序已定义的浏览器上。
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;
}
}
我发现的最近的东西是使用.keys()
let iter = map.keys();
while(!iter.next().done) {
if(foo.match(iter.value)) {
match = map.get(iter.value);
break
}
}
使用for-of
。 for-of
提供三个迭代器: