JS:使用' return'在箭头函数语法

时间:2017-09-23 20:01:57

标签: javascript jquery

我目前正在尝试返回animals数组中每个字符串的每个第一个字符,并使用速记箭头函数语法存储在名为secretMessage的新数组中。但是,我遇到了以下错误。

错误

/home/ccuser/workspace/learn-javascript-iterators-E3/main.js:5
secretMessage.map(animal => return animal[0]);
                            ^^^^^^
SyntaxError: Unexpected token return

的js

let animals = ['Hen', 'elephant', 'llama', 'leopard', 'ostrich', 'Whale', 'octopus', 'rabbit', 'lion', 'dog'];

secretMessage.map(animal => return animal[0]);

console.log(secretMessage.join(''));

为什么会这样?以及如何解决此错误?

5 个答案:

答案 0 :(得分:3)

arrow function中的表达式是返回值。

  

在简洁的正文中,只需要一个表达式,并附加一个隐式返回。在块体中,您必须使用明确的return语句。

您可以删除单词return

var secretMessage = animals.map(animal => animal[0]);

答案 1 :(得分:0)

删除return一词。

secretMessage.map(animal => animal[0]);

胖箭头功能会自动返回表达式。

如果函数包含在块中,则只需要返回:

  secretMessage.map(animal => {
    return animal[0];
  });

答案 2 :(得分:0)

从箭头功能

中删除return
secretMessage.map(animal => animal[0]);

或包含块

secretMessage.map(animal => { return animal[0] });

问题代码的另一个问题是.map()的结果未设置为变量,导致.map()调用仅迭代secretMessage,但未定义结果一个新的阵列。 .map()的结果需要在变量标识符处定义。您还可以使用对象解构来缩短代码

let animals = ['Hen', 'elephant', 'llama', 'leopard', 'ostrich', 'Whale', 'octopus', 'rabbit', 'lion', 'dog'];

let secretMessage = animals.map(({0:s}) => s);

console.log(secretMessage.join(""));

答案 3 :(得分:0)

如果您没有大括号的单行箭头功能,则不需要返回。

答案 4 :(得分:0)

你可以这样做

secretMessage = numbers.map(function(n){return n[0]})