array.find不与Babel合作

时间:2015-09-04 15:21:10

标签: javascript ecmascript-6 babeljs

我正在使用Babel来转换我的ES2015代码。但是它并没有为数组翻译find。以下行引发错误TypeError: options.find is not a function

let options = [2,23,4]
options.find(options, x => x < 10)

4 个答案:

答案 0 :(得分:18)

使用babel polyfill。

require("babel/polyfill");

[1, 2, 3].find((x) => x >= 2);
// => 2

请参阅:Polyfill · Babel

或者你可以使用回调。 Array.find(arr, callback)

Array.find([ 1, 2, 3 ], (x) => x >= 2);
// => 2

Array.prototype.find doesn't work in the runtime · Issue #892 · babel/babel

答案 1 :(得分:3)

或者,如果您已经使用ES6导入

import 'babel/polyfill';

答案 2 :(得分:3)

在较新的版本中它是

import 'babel-polyfill'

来源:Babel Docs

答案 3 :(得分:0)

如果您只是将JavaScript文件与Gulp或Grunt连接在一起,则可以在脚本文件node_modules/babel-polyfill/dist/polyfill.js之前添加脚本。

不要忘记安装它:npm i babel-polyfill