三行代码  ›  专栏  ›  技术社区  ›  defraggled

构建此对象的最佳函数样式语法?

  •  4
  • defraggled  · 技术社区  · 1 周前

    例如,是否有一些本机javascript函数,如 flatMap 那会有帮助吗?

    (我知道我可以去掉中间变量 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)
    
    1 回复  |  直到 1 周前
        1
  •  2
  •   danh    1 周前

    搭配起来更简洁,我觉得更漂亮 fromEntries 上面有一张地图 .entries .

    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))