javascript - 统计 json 文件中名称出现的次数

标签 javascript jquery html json count

如何计算 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 语句,以防同一对象中的 igralec1igralec2 属性可能包含您要查找的单词。如果您知道它只会是任何给定对象中的一个或另一个属性,那么您可以使用一个 if 和一个 or 来实现:

if (o.igralec1 === searchWord || o.igralec2 === searchWord) s++;

进一步阅读:the array .reduce() method .

关于javascript - 统计 json 文件中名称出现的次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38590663/

相关文章:

javascript - 比较 Express 上的参数时失败(获取请求)

javascript - 竞争条件导致 Highcharts 错误 #13

php - DataTables - 来自 Ajax 数据源的动态列?

javascript - 在另一个函数成功结束后调用另一个函数

javascript - 在 Angularjs 中使用 ng-bind-html 不显示 html 标签

javascript - 在 jquery $.when(ajax).done(function(){do sth} 中,我如何回调同一个回调函数两次?

javascript - 拖动元素时滞后

javascript - 更新元素以显示 "contentEditable"元素的实时变化

java - 更改 Java 的 HTML 输出

javascript - 使用 React hooks 从另一个页面使用 useEffect 更新状态