gpt4 book ai didi

javascript - 使用 ramda js 重命名键

转载 作者:行者123 更新时间:2023-11-30 09:14:21 24 4
gpt4 key购买 nike

const orignalArr = [
{
personName: 'Joe'
}
]

预期输出:

const convertedArr = [
{
name: 'Joe'
}
]

我在想重命名的键是在一个对象中定义的(但如果有更好的映射它们的方法就好了):

const keymaps = {
personName: 'name'
};

我如何使用 Ramda 做到这一点?

R.map

的东西

最佳答案

an entryRamda's Cookbook为此:

const renameKeys = R.curry((keysMap, obj) =>
R.reduce((acc, key) => R.assoc(keysMap[key] || key, obj[key], acc), {}, R.keys(obj))
);

const originalArr = [{personName: 'Joe'}]

console .log (
R.map (renameKeys ({personName: 'name'}), originalArr)
)
<script src="https://cdnjs.cloudflare.com/ajax/libs/ramda/0.26.1/ramda.js"></script>

但是随着 ES6 的普及,直接这样写是相当容易的:

const renameKeys = (keysMap) => (obj) => Object.entries(obj).reduce(
(a, [k, v]) => k in keysMap ? {...a, [keysMap[k]]: v} : {...a, [k]: v},
{}
)

关于javascript - 使用 ramda js 重命名键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56220286/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com