Я пытаюсь создать массив объектов, полученных из списка пользователей, и имею следующую строку кода:
var usersEmail=group.map((user)=>{eMail : user.email, rOle : user.role});
':' в 'rOle: user.role' вызывает непредвиденную ошибку ':', когда я пытаюсь сохранить код. Если я использую этот код:
var usersEmail=group.map((user)=>[user.email, user.role]);
Я создаю массив из двух элементов, который работает, но не так хорош, как хотелось бы. Моя последняя попытка была такой:
var usersEmail=group.map((user)=>[{eMail : user.email, rOle : user.role}]);
который создает массив из одноэлементных массивов, каждый из которых содержит правильный объект. Я чувствую, что то, что я хочу сделать, вполне возможно, но у меня просто нет подходящей структуры для этого.
Благодарен за любую помощь.
=> {}
— блок. Чтобы вернуть объект из неявно возвращаемой стрелочной функции, используйте => ({})
Я думаю, это то, что вы ищете:
var usersEmail = group.map((user)=> ({eMail : user.email, rOle : user.role}));
они необходимы здесь, потому что вы используете встроенную (анонимную) функцию, поэтому вам нужно что-то, чтобы показать, что это действительно объект, а не функция.
Вы также можете сделать это следующим образом:
var usersEmail = group.map((user)=> {
return {eMail : user.email, rOle : user.role};
});
Извините, я нашел решение. Мне просто нужно было заключить предложение создания объекта в квадратные скобки ( ), чтобы оно выглядело так:
var usersEmail=group.map((user)=>({eMail : user.email, rOle : user.role}));