条件
检查有条件的语句并返回真/假
安装
npm i @flipbyte/when-condition
使用量
使用带有逻辑规则的数组(“和”或“或”)来定义您的条件,作为第一个元素,然后是一系列比较条件.
逻辑规则的一般表述如下:
['{your logical rule}', [{your comparison rule 1}], [{your comparison rule 2}], ...]
比较规则是包含3个元素的数组:
- 比较规则.
- 需要将数值与条件相比较的对象的密钥 .
- 比较值.
比较规则的一般表述如下:
['{comparison rule}', '{key}', '{comparison value}']
示例
视物体如下:
let data = {
a: 1,
b: 2,
c: {
d: 'string',
e: [{
f: 1,
g: 2
}]
}
}
单一规则
简单地检查一条规则(说)数据
let rule = ['is', 'a', 1]
或者说
检查数据.c.e. [0].f = 1
let rule = ['is', 'c.e[0]`.f', 1]
多项比较的规则
请检查a=1和b=2的数据
let rule = ['and', ['is', 'a', 1], ['is', 'b', 2]]
检查数据.a=1或数据.b=2
let rule = ['or', ['is', 'a', 1], ['is', 'b', 2]]
复杂规则
检查是(data.a = 1和data.b = 2)还是(data.b = 2和data.c.d!='string')
let rule = ['or', ['and', ['is', 'a', 1], ['is', 'b', 2]], ['and', ['is', 'b', 2], ['is', 'c.d', 'string']]]
评价规则
import when from 'when-condition'
when(rule, data) // => returns true or false
使用召回的规则
也可以通过回调功能来检查数据. 将达成一个诺言. 可以是简单的功能,也可以是承诺
when(function(data) {
return data.a !== data.b
}, data).then((result) => {
//...handle your result
})
逻辑规则
逻辑规则有两种:
and- 检查所有条件是否正确.or- 检查一个条件是否正确.not- 返回评估的比较规则的正反值。 这个逻辑规则只需要一个比较规则.
比较规则
现有比较规则如下:
is- 如果对象值与比较值严格相匹配,则返回真实值.isOfType- 如果对象值与指定的类型(ex:字符串、未定义等)相匹配,则返回真实值.anyOf- 如果至少一个比较值与对象键值相匹配,则返回真值。 比较值需要是一个数组.allOf- 如果所有对象密钥值都与比较值相匹配,则返回真值。 比较值需要是一个数组.gt- 如果对象键值大于比较值,则返回正数gte- 如果对象键值大于或等于比较值,则返回正值lt- 如果对象键值小于比较值,则返回正数lte- 如果对象键值小于或等于比较值,则返回正数
许可证
《麻省理工学院许可证》