javascript获取非空JSON子数组的计数

标签 javascript arrays json

如何计算以下 json 中非空 dailyemails 的数量?

{
   "templates":[
      {
         "id":"2c1d99d9b6b2fb417601d24c10c9b041a7d6f37b",
         "dailyemails":[
            "saaa@aa.com",
            "aaa.aaa@gmail.com"
         ],
         "name":"Registration Report"             
      },
      {
         "id":"45s4dsf4qdgze5zef1z3e2f1zevcd5s6sdfsdfsdf",
         "dailyemails":[
         ],
         "name":"Presentation"             
      },
      {
         "id":"7d7cc642ca13cc4a998cad364dfe8e623fd95ae3",
         "dailyemails":[
            "saaa@ss.com"
         ],
         "name":"Live Report"
      }

   ]
}

我目前正在读取节点总数Object.keys(myArr).length:

function metaInfo (id, cb){

    var URL = someURLhere
    var count = []

    fs.readFile(__dirname +'/' + URL+'/myFile.json', 'utf8', function   (err, data) {
        if (err) cb (err);
        obj = JSON.parse(data);
        var myArr = obj.nodes;
        count.push(Object.keys(myArr).length);
        cb(null, count)
    });
};

如何读取非空dailyemails的数量?

最佳答案

您可以像这样使用reduce:

var count = myArray.reduce(function(c, o) {
    return c + (o.dailyemails.length? 1: 0);
}, 0);

使用箭头函数更短:

var count = myArray.reduce((c, o) => c + (o.dailyemails.length? 1: 0), 0);

关于javascript获取非空JSON子数组的计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43637858/

相关文章:

c++ - 如何初始化或更改类中数组内的值?

c - 取消引用结构体中的数组(在 C 中)

javascript - 有没有办法 JSON.stringify 一个 HTML dom 对象? [JavaScript]

javascript - 函数声明不能​​出现在条件语句中吗?

javascript - 当我们点击复选框时如何获取一个或多个数据?

c - C中的字符串数组非常困惑

iPhone SQLite DB 和基于 Web 的 DB 同步和交互建议

javascript - 调用方法失败

javascript - Dropzone 在 jquery 选项卡中不起作用

javascript - 确定两个字符串在 Javascript 中是否相似?