gpt4 book ai didi

javascript - lodash/fp getOr 的工作原理

转载 作者:行者123 更新时间:2023-12-05 00:35:11 56 4
gpt4 key购买 nike

import { getOr } from 'lodash/fp';
我想知道 getOr 是如何工作的,因为我找不到具体的文档来解释它。

最佳答案

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

_.get(object, path, [defaultValue])
以上是 get的用法在常规的lodash中。要使用它,您需要提供 object你想从中获取值(value), path到值,以及可选的 defaultValue如果对象中不存在路径。
使用方法 getOr() :
以下是 _.getOr()的用法:
_.getOr(defaultValue)(path)(object)
很像 _.get()从常规 lodash,上面返回位于 path 的值在 object ,或 defaultValue如果对象中不存在路径。
您可能已经注意到您必须提供 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>

这个怎么运作: _.getOr() 的定义包装常规 lodash _.get()定义,除了它是柯里化(Currying)的,参数被翻转,并且必须提供默认值(因为如果您不提供默认值,您将无法提供其他柯里化(Currying)参数)。使用 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>

关于javascript - lodash/fp getOr 的工作原理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64502616/

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