【问题标题】:Filter JSON data (containing object array) in nodejs在nodejs中过滤JSON数据(包含对象数组)
【发布时间】:2018-04-20 06:56:10
【问题描述】:

** 以下是我的 JSON 数据

我想使用 nodejs 过滤并拥有 rulescore > 0 的数据

**

{
 "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"}
            ]
           }
}

**

我想使用 nodejs 过滤并拥有 rulescore > 0 的数据

**

【问题讨论】:

  • 到目前为止,您尝试过哪些filters?如果您需要帮助调试,请发布您的代码
  • 首先将 JSON 转换为 javascript 对象,稍后你会感谢我的
  • 我尝试使用 npm 包下划线,但我不知道该怎么做
  • @VedaVyas 当数组有filter 方法时,你为什么还要费心下划线?见Array.prototype.filter

标签: javascript json node.js


【解决方案1】:

rules数组使用filter操作,得到rulescore大于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);

【讨论】:

    【解决方案2】:

    ES6

    可以使用filter()数组方法。

    演示

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

    【讨论】:

      【解决方案3】:
          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);
      

      【讨论】:

        猜你喜欢
        • 2021-08-28
        • 2022-08-15
        • 2019-11-25
        • 2019-07-30
        • 1970-01-01
        • 2017-01-28
        • 2013-01-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多