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

标签 javascript functional-programming

下面的代码实现了所需的输出。有没有更优雅的方法来做到这一点?
例如,是否有一些像 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)

最佳答案

配对 fromEntries 更简洁,我认为更漂亮上面有一张 map .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))

关于javascript - 构建此对象的最佳函数式语法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70718736/

相关文章:

javascript - 如何使在 javascript 中发出的 AJAX 请求在调试器中故意失败以对其进行测试?

javascript - Lodash:每次传递最后一个计算结果时,将函数应用于种子n次

kotlin - 折叠返回中间结果而不仅仅是最后一个结果

functional-programming - LISP 全局列表变量

testing - Grails 功能测试依赖注入(inject)

javascript – 如何在 100vh 滚动后淡出一个类?

javascript - Webpack-merge 不访问公共(public)配置变量

javascript - Jqplot 仅显示几个 x 轴刻度

JavaScript 作用域 - 将回调传递给已定义的函数

scala - PartialFunction 如何处理 Scala 中的未定义值?