gpt4 book ai didi

javascript - Ramda(或其他 FP 库)用于选择可能为空键的用法

转载 作者:行者123 更新时间:2023-11-28 17:40:31 24 4
gpt4 key购买 nike

假设我有一个如下的数据结构:

let slots = {
7 : [ 'a', 'b', 'c' ],
8 : [ 'd', 'e', 'f' ]
}
let names = {
a : { name : 'Joe' },
b : { name : 'Doe' },
c : { name : 'Cecilia' },
d : { name : 'Hugh' }
}

...其中slots[x][y]names'键相关。

鉴于 x 和 y 是范围从 0 到 10 的输入,为了获取名称并解释错误情况,可以这样写:

let nameKey = (slots[x] || [])[y] //string or undefined
let name = (names[nameKey] || {}).name || ''

所以在这里我使用了诸如 || 之类的东西[]|| {} 以避免某些输入和空键可能​​出现的错误。我听说通过使用 FP 套件我也可以以更清洁的方式实现这一目标。我应该使用 Ramda(或任何其他 FP 套件)的哪些功能来实现这一目标?

最佳答案

Ramda 有 pathOr :

let slots = {
7 : [ 'a', 'b', 'c' ],
8 : [ 'd', 'e', 'f' ]
}
let names = {
a : { name : 'Joe' },
b : { name : 'Doe' },
c : { name : 'Cecilia' },
d : { name : 'Hugh' }
}

你会这样做:

let nameKey = R.pathOr(undefined, [x, y], slots);
//it'd be probably better to normalize it to always a string instead of undefined (but that's what you wrote)
let name = R.pathOr('', [nameKey, 'name'], names);

关于javascript - Ramda(或其他 FP 库)用于选择可能为空键的用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48055546/

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