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)
)));
添加回答
举报
0/150
提交
取消