javascript – 有没有办法在Lodash或Underscore中指定null的默认值?

我知道_.defaults函数可以为具有未定义键的对象设置默认值.但是它不适用于null的键.有没有办法实现这个目标?

解决方法:

感谢@Jacque关于空值的解释.但是由于不幸的继承代码,我正在处理的对象返回null值,即使它是用于未定义的.这是我通过省略将导致未定义的null属性以更加声明的方式实现此目的的方法,因此将为其值创建默认值.

const alphabet = {
  a: 'A is for apple',
  // b: undefined,
  c: 'C is for cake',
  d: null,
}
const nonNulls = _.omitBy(alphabet, _.isNull) // Omitting null values.
const longer = _.defaults(nonNulls, {
  b: 'B is for boy',
})

console.info('Longer Way', longer)

// Or even shorter
const shorter = _.defaults(_.omitBy(alphabet, _.isNull), {
  b: 'B is for boy',
})

console.info('Shorter Way', shorter)
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js"></script>
上一篇:javascript – JS:替换与模式匹配的对象中的所有字符串值?


下一篇:javascript – 如何使用map将键名更改为嵌套对象?