如何使用 ReactJS 计算数组中给定数字的出现次数

How to count occurrence of a given number in an Array using ReactJS

我将我的 Flask 服务器的结果存储在 this.state.jsondata 中,它是一个像这样的 JSON {label{},text{}}

export default class Success extends React.Component {

    constructor(props) {
        super();
        if (props.location.state) {
            this.state = {
                jsondata: props.location.state.referrer,
                upload: true
                
            } //put jsons data in state object
            toast.success('Upload success')
        } else {
            this.state = {
                upload: false
            }
        }
    }    
...

所以为了在 label 中找到出现,我将我的 JSON 转换为数组并编写了一些代码来查找出现,但我的问题是我想找到 0、1 的出现并且 2 不仅是 0。您已经看到我需要将我的代码复制三次,这是不行的。

render() {
        const arr = []
        Object.keys(this.state.jsondata.label).forEach(key => arr.push({id: key, value: this.state.jsondata.label[key]}))
        
        var search = 0;
        var count = arr.reduce(function(n, val) {
            return n + (val.value === search);
        }, 0);
...

如何修改我的代码以获取给定数字的出现次数?

完整代码如下:https://jsfiddle.net/p9qxktgz/3/

[编辑]

this.state.jsondata 看起来像这样:

{
   "label":{
      "0":0,
      "1":0,
      "2":0,
      "3":0,
      "4":0
   },
   "text":{
      "0":"- Awww, c'est un bummer. Tu devrais avoir david carr du troisième jour pour le faire. ;ré",
      "1":"Est contrarié qu'il ne puisse pas mettre à jour son facebook en le télémaignant ... et peut-être pleurer en conséquence, l'école aujourd'hui aussi. blabla!",
      "2":"J'ai plongé plusieurs fois pour la balle. A réussi à économiser 50% le reste sort de limites",
      "3":"Tout mon corps a des démangeaisons et comme si c'était en feu",
      "4":"Non, il ne se comporte pas du tout. je suis en colère. pourquoi suis-je ici? Parce que je ne peux pas vous voir partout."
   }
}

arr 是这样的:

没有“预期的”输出,我想要做的就是能够将 arr

中每个不同值的出现作为输出

const jsonInput = {
   "label":{
      "0":0,
      "1":0,
      "2":0,
      "3":0,
      "4":0
   }
   }

const occurrenceMap = Object.values(jsonInput.label).reduce((finalMap, item) => {
  finalMap[item] = ++finalMap[item] || 1; 
  
  return finalMap;
} , {})

console.log(occurrenceMap)