【问题标题】:array.find doesn't work with Babelarray.find 不适用于 Babel
【发布时间】:2015-09-04 15:21:10
【问题描述】:

我正在使用 Babel 编译我的 ES2015 代码。但是它不会将 find 翻译为数组。以下行抛出错误TypeError: options.find is not a function

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

【问题讨论】:

标签: javascript ecmascript-6 babeljs


【解决方案1】:

使用 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

【讨论】:

  • 在 Babel 版本 7.4.0 中,babel/polyfill 已弃用,取而代之的是 core-js。可以通过import "core-js/features/array/find"; 应用相同的修复程序
【解决方案2】:

在较新的版本中是

import 'babel-polyfill'

来源:Babel Docs

【讨论】:

    【解决方案3】:

    或者如果你已经在使用 ES6 导入

    import 'babel/polyfill';
    

    【讨论】:

      【解决方案4】:

      如果你只是用 Gulp 或 Grunt 连接你的 javascript 文件,你可以在你的 javascript 文件之前添加脚本:node_modules/babel-polyfill/dist/polyfill.js

      别忘了安装它:npm i babel-polyfill

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-04-03
        • 2016-04-24
        • 2019-07-18
        • 2017-04-23
        相关资源
        最近更新 更多