如何将箭头函数转换为常规函数?

How to convert arrow function into a regular function?

我正在尝试将箭头函数转换为常规函数

这段代码:

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: Unexpected token, expected

你还缺return。当您为 Array.map 方法传入自定义函数时,您需要 return 该函数的值。

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

不过,还是用箭头函数比较好用,因为箭头函数看起来更简洁,并且可以在其中访问this

在箭头函数中,=> 之后的任何表达式都成为函数的隐式 return。

在常规函数中,您需要使用 return keyword.And 也在 {}

中扭曲您的属性
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};  
}

您需要使用return and you can also use shorthand notation of object if you use

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