为了账号安全,请及时绑定邮箱和手机立即绑定

嵌套形状验证javascript

嵌套形状验证javascript

浮云间 2021-10-21 16:42:43
import get from "lodash.get";const x = [  {    value: 1  },  {    value: {      min: undefined,      max: 2    }  }];console.log(  "valid: ",  x.every(o => o.value || (get(o, "value.min") && get(o, "value.max"))));https://codesandbox.io/s/modest-dijkstra-g42yy我希望有效为假,但它返回真,尽管 value.min 未定义。这里有什么问题?
查看完整描述

1 回答

?
jeck猫

TA贡献1909条经验 获得超7个赞

问题是您的第一个条件 ( o.value) 为第二个项目返回valuetrue——因为它是一个对象,因此不是假的——所以你对 min/max 的检查永远不会运行。


const x = [

  {

    value: 1

  },

  {

    value: {

      min: undefined,

      max: 2

    }

  }

];


// utility to check for null/undefined

const c = v => v != null;


console.log(x.every(({ value }) => (

  typeof value === 'object'

? c(value.min) && c(value.max)

: c(value)

)));


查看完整回答
反对 回复 2021-10-21
  • 1 回答
  • 0 关注
  • 120 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信