Veda Vyas
Veda Vyas

Reputation: 121

Filter JSON data (containing object array) in nodejs

** Below is my JSON data

I want to filter and have data that is having rulescore > 0 using nodejs

**

{
 "https://www.google.com":{
   "sitescore":99,
       "rules":[
            {
        "rulename":"rule1","rulescore":0,"description":"rules1 descript"},
            {
        "rulename":"rule2","rulescore":1,"description":"rules2 descript"},
            {
        "rulename":"rule3","rulescore":0,"description":"rules3 descript"}
            ]
           }
}

**

I want to filter and have data that is having rulescore > 0 using nodejs

**

Upvotes: 1

Views: 902

Answers (3)

Ankit Agarwal
Ankit Agarwal

Reputation: 30739

Use filter operation on the rules array to get the rules with rulescore that are greater than 0.

var dataObj = {
 "sitename":{
   "sitescore":99,
   "rules":[
     {
       "rulename":"rule1","rulescore":0,"description":"rules1 descript"
     },
     {
       "rulename":"rule2","rulescore":1,"description":"rules2 descript"
     },
     {
       "rulename":"rule3","rulescore":0,"description":"rules3 descript"
     }
   ]
 }
};

var res = dataObj.sitename.rules.filter((rule) => rule.rulescore > 0);
console.log(res);

Upvotes: 3

Veda Vyas
Veda Vyas

Reputation: 121

    var dataObj={
         "https://www.google.com":{
        "sitescore":99,
         "rules":[
                {
             "rulename":"rule1","rulescore":0,"description":"rules1 descript"},
              {
             "rulename":"rule2","rulescore":1,"description":"rules2 descript"},
               {
             "rulename":"rule3","rulescore":0,"description":"rules3 descript"}
             ]
             }
       };

      var res = (dataObj["https://www.google.com"]).rules.filter(rule => 
   rule.rulescore > 0);
       console.log(res);

Upvotes: 0

Narendra Jadhav
Narendra Jadhav

Reputation: 10262

ES6

You can use filter() method of array.

DEMO

const data = {
    "sitename": {
        "sitescore": 99,
        "rules": [{
            "rulename": "rule1",
            "rulescore": 0,
            "description": "rules1 descript"
        }, {
            "rulename": "rule2",
            "rulescore": 1,
            "description": "rules2 descript"
        }, {
            "rulename": "rule3",
            "rulescore": 0,
            "description": "rules3 descript"
        }]
    }
};


console.log(data.sitename.rules.filter(({rulescore}) => rulescore > 0));
.as-console-wrapper { max-height: 100% !important; top: 0; }

Upvotes: 0

Related Questions