繁体   English   中英

在JavaScript中过滤和计数json属性

[英]Filtering and counting json properties in javascript

我有一个json对象,我想在js中分析其项目。 当我将json登录到控制台时,您可以看到它包含包含相关信息数组的元素items

console.log(json)


{current_page: 1, per_page: 100, total_entries: 106, items: Array(100)}
current_page:1
items:Array(100)
0:{id: 15814, name: "Vehicle_1001", state: "available", repair_state: "broken", network_id: 99, …}
1:{id: 16519, name: "Vehicle_1002", state: "available", repair_state: "broken", network_id: 99, …}

但是,当我尝试使用filter功能来计算repair_state broken的记录数量时,我返回了一个错误:

json.filter(value => value.items.repair_state === 'broken').length

Uncaught TypeError: json.filter is not a function

我在做什么错的,怎么一会算的数items ,其repair_state属性等于broken在这种情况下?

正如我从您的console.log中看到的那样,json是一个对象,其中items是其中的一个数组,因此您应该在array items上应用过滤器。 它应该是,

  var result =   json.items.filter(value => value.repair_state === 'broken').length;

演示

 var json= { "current_page": 1, "per_page": 100, "total_entries": 106, "items": [ { "id": "15814", "name": "Vehicle_1001", "state": "available", "repair_state": "broken" }, { "id": "16519", "name": "Vehicle_1002", "state": "available", "repair_state": "broken" } ] }; var result = json.items.filter(value => value.repair_state === 'broken').length; console.log(result); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM