Implement != operator for arrays
This commit is contained in:
parent
b3bffd5f9a
commit
6dc62f8d14
@ -80,19 +80,23 @@ export function evalQueryExpression(
|
|||||||
case "=": {
|
case "=": {
|
||||||
if (Array.isArray(val1) && !Array.isArray(val2)) {
|
if (Array.isArray(val1) && !Array.isArray(val2)) {
|
||||||
// Record property is an array, and value is a scalar: find the value in the array
|
// Record property is an array, and value is a scalar: find the value in the array
|
||||||
if (val1.includes(val2)) {
|
return val1.includes(val2);
|
||||||
return true;
|
|
||||||
}
|
|
||||||
} else if (Array.isArray(val1) && Array.isArray(val2)) {
|
} else if (Array.isArray(val1) && Array.isArray(val2)) {
|
||||||
// Record property is an array, and value is an array: find the value in the array
|
// Record property is an array, and value is an array: find the value in the array
|
||||||
if (val1.some((v) => val2.includes(v))) {
|
return val1.some((v) => val2.includes(v));
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return val1 == val2;
|
return val1 == val2;
|
||||||
}
|
}
|
||||||
case "!=":
|
case "!=": {
|
||||||
return val1 != val2;
|
if (Array.isArray(val1) && !Array.isArray(val2)) {
|
||||||
|
// Record property is an array, and value is a scalar: find the value in the array
|
||||||
|
return !val1.includes(val2);
|
||||||
|
} else if (Array.isArray(val1) && Array.isArray(val2)) {
|
||||||
|
// Record property is an array, and value is an array: find the value in the array
|
||||||
|
return !val1.some((v) => val2.includes(v));
|
||||||
|
}
|
||||||
|
return val1 !== val2;
|
||||||
|
}
|
||||||
case "=~": {
|
case "=~": {
|
||||||
if (!Array.isArray(val2)) {
|
if (!Array.isArray(val2)) {
|
||||||
throw new Error(`Invalid regexp: ${val2}`);
|
throw new Error(`Invalid regexp: ${val2}`);
|
||||||
|
Loading…
Reference in New Issue
Block a user