json-rules-engine 处理对象数组

问题描述 投票:0回答:1

任何帮助将不胜感激!我找不到答案。

向引擎提供输入事实,例如 -

const facts = {
  cart: {
    prop1: true,
    prop2: "My Cart",
    prop3: {
      prop4: "North America"
    },
    products: [
      {
        category: 1,
        classification: null
      },
      {
        category: 2,
        classification: null
      },
      {
        category: 1,
        classification: null
      }
    ]
  }
};

我希望能够处理产品数组中的每个对象,为每个类别定义单独的规则,并为该类别设置分类字段。

类似-

let condition1 = {
  all: [
    {
      fact: 'category',
      operator: 'equal',
      value: 1
    }
  ]
};

let condition2 = {
  all: [
    {
      fact: 'category',
      operator: 'equal',
      value: 2
    }
  ]
};

let event1 = {
  type: 'category 1 event'
  // Update classification
};

let event2 = {
  type: 'category 2 event'
  // Update classification
};

我该怎么做?我是否在该事件的事件处理程序中设置分类字段?如何访问该类别所属的对象?

我尝试使用下面的方法,但它从每个对象中选择所有类别值。我希望能够单独处理每个对象。

let condition = {
  all: [
    {
      fact: 'cart',
      operator: 'contains',
      value: 1,
      path: '$.products[*].category'
    }
  ]
}

我也无法将它们添加为运行时事实,因为您只能拥有 1 个运行时事实及其值。 (无重复)

javascript node.js json rule-engine
1个回答
0
投票

您找到问题的解决方案了吗?我正在考虑在一个项目中使用 json-rules-engine,我必须解决与您在这里尝试的相同问题。

© www.soinside.com 2019 - 2024. All rights reserved.