Как преобразовать функцию стрелки в обычную функцию? - PullRequest
2 голосов
/ 10 апреля 2019

Я пытаюсь преобразовать функцию стрелки в обычную функцию

этот кусок кода:

let rating = watchList.map( (item) => ({"title":item["Title"], "rating":item["imdbRating"]}) )

примерно так:

let rating = watchList.map( function (item) {
    "title":item["Title"], "rating":item["imdbRating"]
})

пока я думалэти два эквивалента, я получаю это сообщение

SyntaxError: unknown: неожиданный токен, ожидаемый

Ответы [ 3 ]

5 голосов
/ 10 апреля 2019

Вам не хватает return.Когда вы передаете пользовательскую функцию для метода Array.map , вам нужно будет вернуть значение для этой функции.

let rating = watchList.map(function(item) {
  return {"title":item["Title"], "rating":item["imdbRating"]};
})

Тем не менее, более полезно использовать стрелкуфункции, так как функции стрелок кажутся более краткими и позволяют вам получить доступ к this внутри него.

4 голосов
/ 10 апреля 2019

В функции стрелки любое выражение после => становится неявным возвратом функции.

В обычных функциях вам необходимо использовать ключевое слово return. А также деформировать ваши свойства в {}

let rating = watchList.map(function(item){
    return {"title":item["Title"], "rating":item["imdbRating"]};    
}

Вы также можете сократить свой код, используя деструктуризацию параметров.

let rating = watchList.map(function({Title:title,imdbRating:rating}){
    return {"title":Title, "rating":imdbRating};    
}

Или вы можете присваивать имена свойств при разрушении.

let rating = watchList.map(function({Title:title,imdbRating:rating}){
    return {title,rating};  
}
0 голосов
/ 10 апреля 2019

Вам необходимо использовать return , и вы также можете использовать сокращенную запись объекта, если вы используете Разрушение

let rating = watchList.map(function({Title:title, imdbRating:rating}) {
  return {title,rating};
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...