es6 数组.values()方法报错

for (let elem of ['a', 'b'].values()) {
        console.log(elem);
}

这个 values() 方法在 Chrome 下面运行会报错未定义(not a function),但是在 Edge 运行可以。

另外两个方法 keysentries 没有这个问题。

我试过用babel编译和直接运行都不行。

clipboard.png

阅读 5k
5 个回答

Array.prototype.values()支持的浏览器并不多,关于你说的使用babel配置也报错,应该像楼上说的一样,配置出错。
可以使用Array.prototype.keys()来获取values。

**当 for-of 循环没有显式指定迭代器时,每种集合类型都有一个默认的迭代器供循环使用。values() 方法是数组与 Set 的默认迭代器,**

虽然 .values() 现在用不了,但是可以使用默认的,譬如题主代码,可以改成:

for (let elem of ['a', 'b']) {
        console.log(elem);
}

这样其实就是在使用 .values(),可能浏览器开发商觉得暂时没必要开发了吧

是你babel配置错误。

Object.values是ES7的方法。
不过我现在用Typescript开发。这个没事,哈哈

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题