确定JSON响应中的响应数

时间:2016-02-26 01:06:56

标签: javascript html json api rest

提前感谢您的帮助。我想知道如何在javascript中计算符合特定规则的JSON响应中的响应总数。

这是我引用的JSON响应

[  
   {  
      "InvoiceNumber":"INV0319",
      "InvoiceOrder":9,
      "Balance":2.0000,
      "CustomerID":"9b4b615f-2815-4f9c-a765-d7f8517cea6a",
      "CustomerName":"Batman",
      "InvoiceAmount":2.0000,
      "InvoiceDate":"2015-09-17T00:00:00+00:00",
      "DueDate":null,
      "Status":2,
      "Reference":null,
      "Notes":null,
      "IsOverdue":false
   },
   ...

在响应中有一个名为“IsOverDue”的对象:false。

通常在此回复中会有许多结果混合了虚假和真实。

让我们说作为一个例子,在一个响应中有30个IsOverDue:true和20个IsOverDue:False

我如何能够以编程方式计算出响应中有30个(总共50个中)IsOverDue:True

由于

3 个答案:

答案 0 :(得分:1)

使用reduce计算过期值的数量,并返回一个整数。

function getOverdue(arr) {
  return arr.reduce(function(p, c) {
    return c.IsOverdue ? ++p : p;
  }, 0);
}

getOverdue(arr); // 3

DEMO

答案 1 :(得分:1)

你需要循环到每个obj并测试他们的属性'IsOverDue'为true然后添加到你的计数器过期... 尝试阅读并运行我的代码。

<!DOCTYPE html>
<html>
<head>
</head>
<body>
<script type="text/javascript">
//GLOBAL VARS
var overdueCount = 0;
var json = [{  
		      "IsOverdue":true
		   },
		   {  
		      "IsOverdue":false
		   },
		   {  
		      "IsOverdue":false
		   }];
function countOverDue(){
	overdueCount = 0;
	for(var x = 0; x<json.length; x++){
		if(json[x].IsOverdue){
			overdueCount++;
		}
	}
}

countOverDue();
alert("There is "+overdueCount+" over due out of "+json.length);
</script>
</body>
</html>

答案 2 :(得分:0)

JSON响应就像我们这里的数组一样:

var jsonArray = [
    {
      name: 'James',
      isTrue: true
    },
    {
      name: 'Vicky',
      isTrue: true
    },{
      name: 'Ryan',
      isTrue: true
    },
  {
    name: 'Tim',
    isTrue: false
  }
];
var areLate = [];

所以我们真的只是问'如何通过阵列并挑选出我想要的物品'。我喜欢这样做:

jsonArray.forEach( function (element) { 
    if(!element.isTrue){
      areLate.push(element);
    }
});

array.forEach(callback(element))一样。如果pushing的属性jsonArray返回element,我isTrue(添加到我在false下方定义的新数组)。我们表明我们的工作人员通过console.log正确地完成了工作。

console.log(areLate);

如果你想知道有多少是假的,我们可以console.log(areLate.length)但是现在我们将所有信息放在一个新的数组中,以后我们可以使用(比如查找长度)。