为了账号安全,请及时绑定邮箱和手机立即绑定

lodash / fp getOr 是如何工作的

lodash / fp getOr 是如何工作的

月关宝盒 2023-06-09 17:34:53
import { getOr } from 'lodash/fp';我想知道 getOr 是如何工作的,因为我找不到具体的文档来解释它。
查看完整描述

1 回答

?
达令说

TA贡献1821条经验 获得超6个赞

该方法的行为方式与非功能性 lodash 库中的常规get()getOr()方法非常相似:

_.get(object, path, [defaultValue])

以上是常规 lodash 中的用法get。要使用它,您需要提供要从object中获取值的 和path到值的 ,defaultValue如果对象中不存在路径,则需要提供可选的。

如何使用getOr()

以下是 的用法_.getOr()

_.getOr(defaultValue)(path)(object)

与常规 lodash非常相似,上面的代码返回位于in_.get()的值,或者如果路径不存在于对象中。pathobjectdefaultValue

您可能已经注意到,您必须提供defaultValue以上内容才能传递对象和路径参数。如果您确定您的路径将始终指向一个值(并且不需要默认值),那么这就是该方法的用途_.get(path)(object)

用法示例:

const {getOr} = _;

const object = {'a': [{ 'b': { 'c': 3 } }]};

console.log(getOr("default")("a[0].b.c")(object)); // 3

console.log(getOr("default")(['a', '0', 'b', 'c'])(object)); // 3

console.log(getOr("default")("a.b.c")(object)); // "default"

<script src="https://cdn.jsdelivr.net/g/lodash@4(lodash.min.js+lodash.fp.min.js)"></script>


怎么运行的:

for 的定义_.getOr()包装了常规的 lodash_.get()定义,除了它是柯里化的,参数被翻转,并且必须提供默认值(因为如果你不提供默认值,你将无法提供其他柯里化的参数价值)。使用 lodash,您可以_.getOr像这样实现自己:

const {get, rearg, ary, curry} = _; // normal get method

const getOr = curry(rearg(ary(get), [2, 1, 0]));


const object = {'a': [{ 'b': { 'c': 3 } }]};

console.log(getOr("default")("a[0].b.c")(object)); // 3

console.log(getOr("default")(['a', '0', 'b', 'c'])(object)); // 3

console.log(getOr("default")("a.b.c")(object)); // "default"

<script src="https://cdn.jsdelivr.net/npm/lodash@4.17.20/lodash.min.js"></script>


查看完整回答
反对 回复 2023-06-09
  • 1 回答
  • 0 关注
  • 121 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信