如何使用 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)
我将我的 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)