gpt4 book ai didi

javascript - Lodash.get 等价于 Ramda

转载 作者:行者123 更新时间:2023-12-04 14:17:00 24 4
gpt4 key购买 nike

是否有任何内置的 Ramda 函数来检索以字符串形式给出路径的值?喜欢:

R.path('a.b', {a: {b: 2}}); // I want to get 2

我知道 path 可以做到这一点通过使用数组,例如:
R.path(['a', 'b'], {a: {b: 2}});

我可以通过 . 分割路径然后使用它,但在这样做之前,我想知道是否有一个可用的功能,如 lodash.get .

最佳答案

Ramda 不像 lodash 那样处理字符串路径。但是,您可以使用 R.pipe 生成一个非常接近的函数。 , 和 R.split .拆分用于将带有点 ( . ) 和括号的数组转换为 R.path 的数组可以处理。

备注:这是一个非常幼稚的实现,由于 valid object key 的原因,它会在各种边缘情况下失败。在 JS 中。例如,像这样的边缘情况 ['a.b'] - 获取属性 a.b从一个看起来像这样的对象 { 'a.b': 5 } .要处理边缘情况,您必须实现类似于 lodash 内部的 stringToPath() 的东西。功能。

const { pipe, path, split } = R;

const pathString = pipe(split(/[[\].]/), path);

const result = pathString('a.b')({a: {b: 2}});

console.log(result);
<script src="https://cdnjs.cloudflare.com/ajax/libs/ramda/0.26.1/ramda.js"></script>

关于javascript - Lodash.get 等价于 Ramda,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59199253/

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