我正在解析JSON数据并使用batdata.reduce()
我试图找出击球手如何在板球比赛中出局的频率。所以我使用a
作为accumulator
和how
作为currentValue
。所以我将获得how
的不同值的频率(参见上面的JSON数据链接)。
当我尝试console.log(catches)
时。我得到的频率如:LBW: 20, CAUGHT: 69, DNB: 14, RUNOUT: 3 ......
但在控制台我也得到undefined:60
为什么呢? (见截图)
chart.js之:
import React, { Component } from 'react';
import batdata from "./batdata";
const catches = batdata.reduce( (a,{how}) =>{
if(!a[how]){
a[how]=1;
}else{
a[how]=a[how] + 1;
}
return a;
}, {});
console.log(catches);
截图:
答案 0 :(得分:2)
如果你只想要dimissal hows,你可以这样做:
const catches = batdata.reduce( (a,{dismissal}) =>{
a[dismissal.how] = !a[dismissal.how] ? 1 : a[dismissal.how] + 1;
return a;
}, {});
现在,如果你想知道当时的基础,并解雇当不存在的时候,你可以这样做:
const catches = batdata.reduce( (a,{how, dismissal}) =>{
if(typeof how === 'undefined')
a[dismissal.how] = !a[dismissal.how] ? 1 : a[dismissal.how] + 1;
else
a[how] = !a[how] ? 1 : a[how] + 1
return a;
}, {});