【问题标题】:ES 6 to ES 5 need help fixingES6 到 ES5 需要帮助修复
【发布时间】:2019-07-24 17:35:33
【问题描述】:

我有两段代码是 ES6,但我需要将 ES5 用于一个类。创建 ES5 中列出的每一个的最佳方法是什么?我从一个数组中输出这些,并且数组中的每个值都需要在一个新行上。

  1. tools.forEach(tools => console.log(tools));

  2. tools.sort().forEach(tools => console.log(tools));

【问题讨论】:

  • 欢迎来到 SO。如果您提供您的研究和您尝试过的示例代码(在这种情况下,您尝试过的 ES5 代码是什么?为什么不是 ES5?您是如何尝试找出 ES5 和 ES6 的? )。此外,通常最好提出一个问题,而不是多个问题。
  • ES5 看起来像 tools.sort();for(var i=0;i<tools.length;i++){ console.log(tools[i]);}
  • 您只需要将箭头函数转换为普通的 ES5 函数。其他一切都已经是 ES5。 ()=>{} 变为 function(){}
  • 请原谅我对这个问题的无知。我是stackoverflow的新手,我为我的无知道歉。好消息是效果很好!我可以通过从一本我有的书中拼凑出来,但在 ES5 上遇到了一些问题。非常感谢。

标签: javascript arrays function ecmascript-6 ecmascript-5


【解决方案1】:

您可以使用这个 babel 编译器将代码示例从 ES6 转换为 ES5

https://babeljs.io/repl#?babili=false&browsers=&build=&builtIns=false&spec=false&loose=false&code_lz=C4exBsGcDpJAnYAKAlNAZggogQwMYAWSoEkABALwB8ZeIAdnOAKbTggDmxYUKKA3EA&debug=false&forceAllTransforms=false&shippedProposals=false&circleciRepo=&evaluate=false&fileSize=false&timeTravel=false&sourceType=module&lineWrap=true&presets=es2015%2Creact%2Cstage-2&prettier=false&targets=&version=7.3.4

tools.forEach(tools => console.log(tools));

变成:

tools.forEach(function (tools) {
  return console.log(tools);
});

tools.sort().forEach(tools => console.log(tools));

变成:

tools.sort().forEach(function (tools) {
  return console.log(tools);
});

【讨论】:

    【解决方案2】:

    使用function 替换=>

    第一

    tools.forEach(tools => console.log(tools));
    

    用给定的代码替换

    tools.forEach(function(tools){
        console.log(tools));
    });
    

    第二次

    tools.sort().forEach(tools => console.log(tools));
    

    用给定的代码替换

    tools.sort().forEach(function(tools){
        console.log(tools));
    });
    

    这是转换ES6 to ES5的链接

    【讨论】:

      【解决方案3】:

      只需使用function 将其转译,如下所示:

      tools.forEach(function(tool) {
          console.log(tool);
      });
      

      并为另一个添加sort

      tools.sort().forEach(function(tool) {
          console.log(tool);
      });
      

      请注意,尽管在您提供的 ES6 中存在隐式返回,但您实际上并不需要在 forEach() 循环中使用它,这就是我将其排除在外的原因 - 如果您愿意,请随时将其添加回来喜欢。

      【讨论】:

        【解决方案4】:

        唯一的区别是=>你可以简单地这样写;

        tools.forEach(function (tools) {
          return console.log(tools);
        });
        

        【讨论】:

          猜你喜欢
          • 2014-07-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多