2 votes

Comment convertir une fonction flèche en une fonction régulière ?

J'essaie de convertir une fonction flèche en une fonction régulière.

ce morceau de code :

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

comme ça :

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

alors que je pensais que ces deux-là étaient équivalents, je reçois ce message

SyntaxError : unknown : Unxpected token, expected

5voto

wentjun Points 9821

Il vous manque return . Lorsque vous transmettez une fonction personnalisée pour le Array.map vous devrez renvoyer une valeur pour cette fonction.

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

Néanmoins, il est plus utile d'utiliser les fonctions flèches, car celles-ci semblent plus concises, et permettent d'accéder à this en son sein.

4voto

Maheer Ali Points 32926

Dans la fonction flèche, toute expression après => devient un retour implicite de la fonction.

Dans les fonctions régulières, vous devez utiliser return Et déformez également vos propriétés en {}

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

Vous pouvez également raccourcir votre code en utilisant la déstructuration des paramètres.

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

Ou vous pouvez nommer les propriétés pendant la destruction.

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

0voto

Code Maniac Points 29570

Vous devez utiliser retourner et vous pouvez également utiliser notation sténographique d'objet si vous utilisez déstructuration

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X