Javascript 从API数据创建对象时出现问题

Javascript 从API数据创建对象时出现问题,javascript,Javascript,我已经从PokeAPI获取了数据,现在我正在努力创建一个包含这些数据的对象。数据如下所示: valueObject={ “统计数据”:[{ “基本统计”:45, “努力”:0, “统计”:{ “名称”:“速度”, “url”:”https://pokeapi.co/api/v2/stat/6/" } }, { “基本统计”:65, “努力”:0, “统计”:{ “名称”:“特殊防御”, “url”:”https://pokeapi.co/api/v2/stat/5/" } }, ] }试试看

我已经从PokeAPI获取了数据,现在我正在努力创建一个包含这些数据的对象。数据如下所示:

valueObject={
“统计数据”:[{
“基本统计”:45,
“努力”:0,
“统计”:{
“名称”:“速度”,
“url”:”https://pokeapi.co/api/v2/stat/6/"
}
},
{
“基本统计”:65,
“努力”:0,
“统计”:{
“名称”:“特殊防御”,
“url”:”https://pokeapi.co/api/v2/stat/5/"
}
},
]
}
试试看

let data=[];
数据[0]={
“统计数据”:[{
“基本统计”:45,
“努力”:0,
“统计”:{
“名称”:“速度”,
“url”:”https://pokeapi.co/api/v2/stat/6/"
}
},
{
“基本统计”:65,
“努力”:0,
“统计”:{
“名称”:“特殊防御”,
“url”:”https://pokeapi.co/api/v2/stat/5/"
}
},
]
}
数据[1]={
“统计数据”:[{
“基本统计”:72,
“努力”:0,
“统计”:{
“名称”:“速度”,
“url”:”https://pokeapi.co/api/v2/stat/6/"
}
},
{
“基本统计”:90,
“努力”:0,
“统计”:{
“名称”:“特殊防御”,
“url”:”https://pokeapi.co/api/v2/stat/5/"
}
},
]
}
设obj={};
valueObject=data.flatMap(x=>x.stats);
valueObject.forEach(x=>{
obj[x.stat.name]=Math.max(obj[x.stat.name]| 0,x.base_stat)
})

控制台日志(obj)请再次单击,然后发布一段带有输入的可运行脚本,并向我们显示此类操作的预期输出,
array.reduce
可能是最合适的方法。@mplungjan很抱歉,但我不知道如何操作。如果数据数组是从API获取的,我如何使其可运行?您已经有了示例数据。将JS添加到数据中是什么意思?我想我以前没有见过它。这是位“或”-我们在这里使用它,以防obj中的值未定义-numer | 0=number(不更改编号),undefined | 0=0(返回零),例如在控制台中键入
5 | 0
undefined | 0
啊,对了。我还没有在JS中看到这个操作符。现在什么是obj?我将valueObject改为data[0],因为我将数据数组作为参数传递给函数。它创建了一个具有专有名称的对象,但值不正确。攻击:49防御:49生命:45特殊攻击:65特殊防御:65速度:45最大值约为200。它们也奇怪地重复了两次。好吧,我在原始问题的底部添加了整个函数
valueObject = data.flatMap(x=>x.stats);
valueObject.forEach(x => {
  obj[x.stat.name] = Math.max(obj[x.stat.name] | 0, x.base_stat)
})