有没有办法全局而不是单独处理未定义的值?
Is there a way of handling undefined values globally instead of individually?
我正在使用一个 api 可能会或可能不会 return 任何对象属性。
因此,我只想获取键存在的值。
因为我需要从 API 中获取数百个值,所以我很想找到一种方法来全局处理未定义的值(每个值赋值只有在找到它正在寻找的键时才会执行)而不是为我正在检索的每个值创建一个 if 语句。
result.forEach((item, i) => {
let selectedLegend = Object.values(result[i]['legends']['selected'])[0];
if(selectedLegend['kills']){
datosTotales.kills += selectedLegend['kills'];
}
if(selectedLegend['wins_season_3']){
datosTotales.wins += selectedLegend['wins_season_3'];
}
if(selectedLegend['top_3']){
datosTotales.top3 += selectedLegend['top_3'];
}
// ...
// ...
});
一个选项是解构,如果属性不存在则将属性默认为 0,然后将它们相加:
result.forEach((item, i) => {
const selectedLegend = result[i].legends.selected;
const { kills = 0, wins_season_3 = 0, top_3 = 0 } = Object.values(selectedLegend)[0];
datosTotales.top3 += kills + wins_season_3 + top_3;
});
如果这对您来说太重复了,则遍历 属性 个名称的数组:
result.forEach((item, i) => {
const selectedLegend = result[i].legends.selected;
const obj = Object.values(selectedLegend)[0];
for (const prop of ['kills', 'wins_season_3', 'top_3']) {
datosTotales.top3 += obj[prop] || 0;
}
});
我正在使用一个 api 可能会或可能不会 return 任何对象属性。 因此,我只想获取键存在的值。
因为我需要从 API 中获取数百个值,所以我很想找到一种方法来全局处理未定义的值(每个值赋值只有在找到它正在寻找的键时才会执行)而不是为我正在检索的每个值创建一个 if 语句。
result.forEach((item, i) => {
let selectedLegend = Object.values(result[i]['legends']['selected'])[0];
if(selectedLegend['kills']){
datosTotales.kills += selectedLegend['kills'];
}
if(selectedLegend['wins_season_3']){
datosTotales.wins += selectedLegend['wins_season_3'];
}
if(selectedLegend['top_3']){
datosTotales.top3 += selectedLegend['top_3'];
}
// ...
// ...
});
一个选项是解构,如果属性不存在则将属性默认为 0,然后将它们相加:
result.forEach((item, i) => {
const selectedLegend = result[i].legends.selected;
const { kills = 0, wins_season_3 = 0, top_3 = 0 } = Object.values(selectedLegend)[0];
datosTotales.top3 += kills + wins_season_3 + top_3;
});
如果这对您来说太重复了,则遍历 属性 个名称的数组:
result.forEach((item, i) => {
const selectedLegend = result[i].legends.selected;
const obj = Object.values(selectedLegend)[0];
for (const prop of ['kills', 'wins_season_3', 'top_3']) {
datosTotales.top3 += obj[prop] || 0;
}
});