1

** 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

**

5
  • 1
    What filters have you tried so far? Post your code if you want help debugging Commented Apr 20, 2018 at 6:56
  • 1
    start by converting JSON to javascript objects, you'll thank me later Commented Apr 20, 2018 at 6:57
  • Possible duplicate of How to filter an array in javascript? Commented Apr 20, 2018 at 6:57
  • I tried using npm packages underscore but i am not getting how to do Commented Apr 20, 2018 at 6:59
  • 2
    @VedaVyas why would you bother with underscore when Arrays have a filter method? See Array.prototype.filter Commented Apr 20, 2018 at 7:00

3 Answers 3

3

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);

Sign up to request clarification or add additional context in comments.

Comments

0

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; }

Comments

0
    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);

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.