как проверить возраст и процент учащихся в javascript? - PullRequest
0 голосов
/ 12 июля 2020

Я использую json-rule-engine. https://www.npmjs.com/package/json-rules-engine У меня есть список студентов, в котором указаны имя, возраст и их процентное соотношение. Также у меня есть business rule, процентное соотношение должно быть больше или равно 70, а возраст должен быть в [25, 28].

поэтому я хочу напечатать имена всех учащихся, у которых процент больше 70 и возраст [25,28]

, поэтому я попробовал вот так

const fastify = require("fastify");
const app = fastify();

const { Engine } = require("json-rules-engine");

let engine = new Engine()
 
engine.addRule({
  conditions: {
    all: [
      {
        fact: "percentage1",
        operator: "greaterThanInclusive",
        value: 70,
        path: '$.percen' 
      },{
      fact: 'percentage1',
      operator: 'in',
      value: [25,28], 
      path: '$.age'
    }
    ]
  },
  event: {
    type: "message",
    params: {
      data: "hello-world! (greater than 70)"
    }
  }
});

let facts = [
  {
    name:"naveen",
    percentage:65,
    age:30
  },
  {
    name:"rajat",
    percentage:50,
    age:30
  },
  {
    name:"ravi",
    percentage:75,
    age:25
  },
  {
    name:"kaushal",
    percentage:64,
    age:13
  },
  {
    name:"piush",
    percentage:89,
    age:12
  }
]


engine.addFact('percentage1', function (params, almanac) {
  console.log('*****',almanac.factValue('percentage'))
  return almanac
})
 
// Run the engine to evaluate
facts.forEach((fact) => {
  engine
    .run(fact)
    .then(results => {
      if (results.events.length) {
        console.log("Student,", results.almanac.factMap.get('name').value, ", meet the event(s)", results.events)
      }
    })
})

https://repl.it/repls/SnappyOverjoyedStaff#index. js

ожидаемый результат

{
    name:"ravi",
    percentage:75,
    age:25
  },

Я хочу использовать $ или path: '$.percen' для понимания .. подскажите пожалуйста, где я делаю не так?

какое-нибудь обновление?

...