我目前正在尝试返回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(''));
为什么会发生这种情况?如何解决这个错误?
发布于 2017-09-24 04:04:12
删除单词return
。
secretMessage.map(animal => animal[0]);
fat arrow函数自动返回表达式。
仅当函数包装在块中时才需要返回:
secretMessage.map(animal => {
return animal[0];
});
发布于 2017-09-24 04:04:33
从箭头函数中删除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(""));
发布于 2017-09-24 04:04:36
当你有一个没有大括号的单行箭头函数时,你不需要返回。
https://stackoverflow.com/questions/46383775
复制相似问题