CacheControl / CacheControl/json-rules-engine
Question: Comparing Distinct Arrays of Objects
- Ngôn ngữ chính
- JavaScript
- Star
- 3.1k
- Fork
- 507
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Mô tả
Hello,
I am trying to compare an array of objects to check for a specific set of objects to be present in any of them, but not across all of them, specifically lets take this rule:
```
const arrayRule = {
conditions: {
any: [
{
all: [
{
fact: 'data',
path: '$.[*].equalityTest',
operator: 'equal',
value: 50,
},
{
fact: 'data',
path: '$.[*].anotherTest',
operator: 'equal',
value: 50,
},
],
},
],
},
event: {
type: 'arrayRule',
},
};
```
This is the first iteration of the rule I came up with, it is incorrect, but I wanted to give an idea of what I am aiming for.
Specifically here, we have a rule where I want `equalityTest` to equal `50` and `anotherTest` to also equal `50`. But I want them to equal those values in the same object, such that:
*THIS SHOULD RETURN FALSE*
```
const facts = {
data: [
{
anotherIntegerFact: 1,
equalityTest: 50,
},
{
anotherIntegerFact: 50,
equalityTest: 40,
},
],
};
```
*THIS SHOULD RETURN TRUE*
```
const facts = {
data: [
{
anotherIntegerFact: 50,
equalityTest: 50,
},
{
anotherIntegerFact: 40,
equalityTest: 40,
},
],
};
```
Would love any suggestions or ideas on a way to tackle this. One thought was I could write my own `operator` and add it to the registry of operators on our end, but before I did so, I wanted to validate that is needed.
Thanks
Hướng dẫn đóng góp
Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này
Đánh giá
Issue này chưa được đánh giá.