lodash 库中的模拟 Ramda.pathOr
Analog Ramda.pathOr in lodash library
lodash 库中的方法 equal ramda.pathOr 是什么?
R.pathOr('N/A', ['a', 'b'], {a: {b: 2}}); //=> 2
R.pathOr('N/A', ['a', 'b'], {c: {b: 2}}); //=> "N/A"
如何编写此 lodash 语法?
您可以使用 _.get
并交出对象、路径和可选的默认值。
var value = _.get({ a: { b: 2 } }, ['a', 'b'], 'N/A');
console.log(value);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.10/lodash.min.js"></script>
根据 Nina 的回答,使用 lodash 的 get
的替代方法是,lodash/fp 中的 getOr
函数具有类似于 Ramda 的参数顺序和柯里化:
const {getOr} = require('lodash/fp');
getOr('N/A', ['a', 'b'], { a: { b: 2 } } ); // 2
getOr('N/A', ['a', 'b'])({ c: { b: 2 } } ); // 'N/A'
参见https://github.com/lodash/lodash/wiki/FP-Guide, or for an example the answer at 。
lodash 库中的方法 equal ramda.pathOr 是什么?
R.pathOr('N/A', ['a', 'b'], {a: {b: 2}}); //=> 2
R.pathOr('N/A', ['a', 'b'], {c: {b: 2}}); //=> "N/A"
如何编写此 lodash 语法?
您可以使用 _.get
并交出对象、路径和可选的默认值。
var value = _.get({ a: { b: 2 } }, ['a', 'b'], 'N/A');
console.log(value);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.10/lodash.min.js"></script>
根据 Nina 的回答,使用 lodash 的 get
的替代方法是,lodash/fp 中的 getOr
函数具有类似于 Ramda 的参数顺序和柯里化:
const {getOr} = require('lodash/fp');
getOr('N/A', ['a', 'b'], { a: { b: 2 } } ); // 2
getOr('N/A', ['a', 'b'])({ c: { b: 2 } } ); // 'N/A'
参见https://github.com/lodash/lodash/wiki/FP-Guide, or for an example the answer at