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()
的值,或者如果路徑不存在于對象中。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>
怎么運行的:
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>
添加回答
舉報