isTrue的js实现

广告位招租
扫码页面底部二维码联系

用一个函数来判断一个值是否真的是true or false,之所以要做这个判断,是为了更加可配的来处理一个问题,就是0,字符串'',以及数字Infinity。

function isTrue(value, {zero = true, infinity = false, emptyString = false, emptyArray = false, emptyObject = false} = {}) {
  if(value === 0) return !!zero
  if(value === '') return !!emptyString
  if(value === Infinity) return !!infinity
  if(Array.isArray(value) && value.length === 0) return !!emptyArray
  if(value === null) return false
  if(typeof value === 'object' && Object.keys(value).length === 0) return !!emptyObject
  return !!value
}

默认更改了上面这些值的返回结果,比如0,默认是返回false,但我认为0是一个明确的数组,应该返回true,而空字符串''则仍然保持返回false,另外,增加了空数组和空对象返回false。源码在这里,可能后期还会更新。

2017-04-21 3019

为价值买单,打赏一杯咖啡

本文价值30.19RMB