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 अपरिभाषित है। यहां क्या समस्या है?

0
Hanz 19 सितंबर 2019, 06:30

1 उत्तर

सबसे बढ़िया उत्तर

समस्या यह है कि आपकी पहली शर्त (o.value) दूसरे आइटम के लिए सही है - चूंकि value एक वस्तु है और इसलिए झूठी नहीं है - इसलिए न्यूनतम/अधिकतम के लिए आपका चेक कभी नहीं चलता है।

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)
)));
0
ray hatfield 19 सितंबर 2019, 06:56