亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

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/[email protected]/lodash.min.js"></script>


查看完整回答
反對 回復 2023-06-09
  • 1 回答
  • 0 關注
  • 169 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號