如何计算 JSON
文件中某个名称的出现次数。我想知道名称“MICO”出现在 JSON
文件中多少次,并且我想将其存储在 var mico=2;
等变量中。我的 JSON
文件如下所示:
[
{
"igralec1": "LEON",
"datum": "Cetrtek - 21. Julij 2016",
"set1": "4",
"set2": "6",
"set3": "6",
"set4": "-",
"set5": "-",
"igralec2": "MICO",
"set21": "6",
"set22": "1",
"set23": "4",
"set24": "-",
"set25": "-"
},
{
"igralec1": "MICO",
"datum": "Ponedeljek - 11. Julij 2016",
"set1": "6",
"set2": "6",
"set3": "6",
"set4": "-",
"set5": "-",
"igralec2": "PERO",
"set21": "2",
"set22": "1",
"set23": "3",
"set24": "-",
"set25": "-"
}
]
最佳答案
假设 JSON 已(以某种方式)检索到名为 json
的变量中,您必须解析它才能获取数组:
var array = JSON.parse(json);
尽管如果您使用 jQuery Ajax 方法来获取它,jQuery 可能会为您解析它,所以您可以跳过该步骤。无论如何,假设解析的数据(以某种方式)位于名为 array
的变量中:
function searchForWord(word, array) {
return array.reduce(function(s, o) {
if (o.igralec1 === word) s++;
if (o.igralec2 === word) s++;
return s;
}, 0);
}
var micoCount = searchForWord("MICO", array); // 2
var peroCount = searchForWord("PERO", array); // 1
演示:https://jsfiddle.net/rzmada6p/1/
我使用了两个 if
语句,以防同一对象中的 igralec1
和 igralec2
属性可能包含您要查找的单词。如果您知道它只会是任何给定对象中的一个或另一个属性,那么您可以使用一个 if
和一个 or 来实现:
if (o.igralec1 === searchWord || o.igralec2 === searchWord) s++;
进一步阅读:the array .reduce()
method .
关于javascript - 统计 json 文件中名称出现的次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38590663/