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