このオブジェクトを構築するための最良の機能スタイルの構文?

4
2022.01.15

以下のコードは、目的の出力を実現します。これを行うためのよりエレガントな方法はありますか?

たとえば 、flatMap などのネイティブ javascript 関数が役立つでしょうか。

(中間変数 piecesを取り除くことができると知っています。

const config = {
    fieldName1: {
        validation: "schema1",
        value: "abcvalue here"
    },
    fieldName2: {
        validation: "schema2",
        value: "abcvalue here"
    },
}

// Desired output: 
// {
//     fieldName1: "schema1",
//     fieldName2: "schema2",
//     ...
// }
const extractValidation = (config) => {
    const pieces = Object.entries(config).map(
        ([key, val]) => ({
            [key]: val.validation
        })
    )
    return Object.assign({}, ...pieces)
}


extractValidation(config)
回答
2
2022.01.15

より簡潔で、をfromEntries上の地図と組み合わせる方がきれいだと思います。

const config = {
    fieldName1: {
        validation: "schema1",
        value: "abcvalue here"
    },
    fieldName2: {
        validation: "schema2",
        value: "abcvalue here"
    },
}

const extractValidation = (config) => Object.fromEntries(
  Object.entries(config).map(([k,v]) => [k, v.validation])
);

console.log(extractValidation(config))