CacheControl / CacheControl/json-rules-engine

Question: Comparing Distinct Arrays of Objects

未關閉
#258 5 則留言 2 個 reaction 已指派 0 人 在 GitHub 檢視
主要語言
JavaScript
星號
3.1k
分支
507
PR 合併指標
30 天內沒有已合併 PR

描述

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

貢獻指南

這個儲存庫沒有索引到貢獻指南

研究方向

未指定檔案或測試進入點。首先檢查與陣列路徑求值相關的規則條件和運算子註冊表;使用提供的兩個 facts 範例,將完成定義為同一物件比對:第一個回傳 false,第二個回傳 true。

由索引模型根據 Issue 內容生成。

評估

技術堆疊
javascript
領域
backend
Issue 類型
功能
難度
5/5
預估耗時
一週以上
活躍度
停滯
描述清晰度
基本清楚
新手友好度
20/100

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。