una tipos recorrer pasar parametros objetos objeto metodos funciones funcion eliminar elemento desde buscar array agregar javascript ecmascript-6 arrow-functions

tipos - recorrer array de objetos javascript



¿Cómo devolver un objeto anónimo desde una función de flecha de línea en javascript? (3)

Esta pregunta ya tiene una respuesta aquí:

Recientemente cambié a es6 y comencé a usar las funciones de flecha en todo mi código. Mientras refactorizaba encontré el código debajo

data.map(function(d) { return {id: d.id, selected: bool}; });

Cambié el código anterior a este

data.map((d) => {id: d.id, selected: bool});

Pero estaba recibiendo un error del código anterior. No sé qué está mal aquí? Sé que si no hay un bloque de código, entonces hay un retorno implícito proporcionado por la función de flecha.

¿Pero no sabe cómo devolver un objeto vacío u objeto anónimo con algunas propiedades inicializadas?

Editar:

¿Qué pasa si lo hago de esta manera? Sólo por curiosidad.

data.map((d) => new {id: d.id, selected: bool});



Ponga parens alrededor del inicializador de objeto:

data.map((d) => ({id: d.id, selected: bool}) );

Los paréntesis no tienen efecto sobre el valor de la expresión dentro de ellos, pero tienen el efecto sintáctico de eliminar la ambigüedad del primer token de la expresión contenida. Sin los paréntesis, el analizador de JavaScript debe decidir si el { token significa "Aquí comienza el cuerpo de una función" o "Aquí comienza el inicializador de un objeto". Siempre elige lo primero (es decir, un bloque de código).

Por lo tanto, al introducir los paréntesis, se elimina la confusión: lo único que un líder ( puede significar es "aquí viene una expresión", por lo que { dentro de los paréntesis solo puede estar "aquí viene un inicializador de objetos"). un bloque de código en medio de una expresión, en otras palabras; si lo intentas, obtendrás un error de sintaxis.)


También puedes usar

data.map((d) => { return {id: d.id, selected: bool} } );