如何计算angular2中导入的json上的字符串属性

时间:2016-07-13 13:34:10

标签: json angular

计算导入json上特定属性的最简单方法?我试图获得一个状态计数"成功"试过管道,我很困惑

myjson: {
    company1 : {
        status : "success",
    },
  company2 : {
    status : "failure",
  },
  company1 : {
    status : "success",
  },    
}

2 个答案:

答案 0 :(得分:0)

如果您不知道JSON可以包含的确切属性(company1,company2,...),则首先需要提取它们。

由于javascript中的对象可以像数组一样以类似方式访问,因此您可以使用for (var property in myjson)轻松迭代所有属性并访问其值myjson[property]

尝试这样的事情:

var myjson = {
    company1: { status: "success", },
    company2: { status: "failure", },
    company3: { status: "success", },
};

var count = 0;

for (var property in myjson)
{
    if (myjson.hasOwnProperty(property) && myjson[property].status == "success")
    {
        count++;
    }
}

有关迭代未知结构对象的更多信息,请查看此帖子Iterate through object properties

答案 1 :(得分:0)

您可以进行旧式对象迭代,但我不知道如何处理代码中的重复键。

var companies = {
  company1: {
    status: "success",
  },
  company2: {
    status: "failure",
  },
  company3: {
    status: "success",
  }
}

var successCount = 0;

for (var company in companies) {
  var company = companies[company];
  for (var status in company) {
    if(company[status] === 'success') {
        successCount++;
    }
  }
}

document.getElementById('success').innerHTML = successCount;

参见示例 https://jsfiddle.net/rogtao73/