for (let elem of ['a', 'b'].values()) {
console.log(elem);
}
这个 values()
方法在 Chrome 下面运行会报错未定义(not a function),但是在 Edge 运行可以。
另外两个方法 keys
和 entries
没有这个问题。
我试过用babel编译和直接运行都不行。
for (let elem of ['a', 'b'].values()) {
console.log(elem);
}
这个 values()
方法在 Chrome 下面运行会报错未定义(not a function),但是在 Edge 运行可以。
另外两个方法 keys
和 entries
没有这个问题。
我试过用babel编译和直接运行都不行。
Array.prototype.values()支持的浏览器并不多,关于你说的使用babel配置也报错,应该像楼上说的一样,配置出错。
可以使用Array.prototype.keys()来获取values。
**当 for-of 循环没有显式指定迭代器时,每种集合类型都有一个默认的迭代器供循环使用。values() 方法是数组与 Set 的默认迭代器,**
虽然 .values() 现在用不了,但是可以使用默认的,譬如题主代码,可以改成:
for (let elem of ['a', 'b']) {
console.log(elem);
}
这样其实就是在使用 .values(),可能浏览器开发商觉得暂时没必要开发了吧
10 回答11.2k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
现在
chrome
不支持!详情请看
mdn
Array.prototype.values()如果要在
chrome
里使用,需要配置一下babel-polyfill
详情参考 Polyfill