首页 > 解决方案 > 有什么简写的 JavaScript 可以让这个 reducer 更简单吗?

问题描述

我需要“瘦身”并将对象列表减少到许多属性,但仍然很多。我的代码如下所示:

function reduceSpeakersData(speakers: Speaker[]) {
    return speakers.map(function(speaker: Speaker) {
        //return speaker;
        return ({
            id: speaker.id,
            firstName: speaker.firstName,
            lastName: speaker.lastName,
            imageUrl: speaker.imageUrl,
            company: speaker.company
        })
    });
}

我知道我是否有:

firstName: firstName

我可以做到

firstName

但不确定我能做什么

firstName: speaker.firstName

建议?

标签: javascriptecmascript-6

解决方案


可能与添加一些破坏性对象概念类似

const reduceSpeakersData = (speakers: Speaker[]) => {
      return speakers.map(({ id, firstName, lastName, imageUrl, company }: Speaker) => ({
        id,
        firstName,
        lastName,
        imageUrl,
        company
      }));
    };

推荐阅读