Javascript (es6) можно разрушить и вернуть в одной строке?

#ecmascript-6 #object-destructuring

#ecmascript-6 #объект-деструктурирование

Вопрос:

Мне любопытно, возможно ли вернуть деструктурированный объект в той же строке, в которой он был деструктурирован.

Текущие (рабочие) примеры:

использование 2 строк

 const itemList = json.map((item) => {
    const { id, title } = item;
    return { id, title };
});
 

1 строка, но не разрушена

 const itemList = json.map((item) => {
    return { id: item.id, title: item.title }; // This also requires repeating the field name twice per instance which feels hacky
});
 

Можно ли сжать тело до одной строки?

пример (не работает)

 const itemList = json.map((item) => {
    return { id, title } = item;
}
 

Ответ №1:

Уничтожьте параметры обратного вызова и верните объект:

 const itemList = json.map(({ id, title }) => ({ id, title }))
 

Комментарии:

1. Работает только в этой конкретной ситуации, с помощью array mapper, но не в том случае, если у вас была «просто» функция и внутри нее часть реструктуризации, как показано в первом примере OP: () => { const {a,b} = foo; return {a,b}; }