我正在解析 JSON 数据并使用 batdata.reduce()
我试图找出击球手在板球比赛中出局的频率。所以我正在使用 a
如accumulator
和how
如currentValue
。所以我会得到 how
不同值的频率(请参阅上面的 JSON 数据链接)。
当我尝试 console.log(catches)
。我得到的频率例如:LBW: 20, CAUGHT: 69, DNB: 14, RUNOUT: 3 ......
但在控制台中我也得到 undefined:60
为什么这样 ? (见截图)
图表.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);
截图:
最佳答案
如果您只想解雇如何,您可以这样做:
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;
}, {});
关于javascript - 如何使用reduce()从javascript中的嵌套数据中提取信息? (ES6),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50719256/