通过 http 方法我下载 dto 和一些变量,其中一些可能是未定义的。
示例 Http 响应(它可能包含更多变量,如 SO2、C6H6 等...):
{
'city_name': 'warszawa',
'pollution_types': {
'CO': 506.0,
'O3': 52.66
}
}
托斯:
export interface PollutionTypes {
CO: number;
NO2: number;
SO2: number;
PM10: number;
PM25: number;
C6H6: number;
O3: number;
}
export interface AirQualityData {
city_name: string;
pollution_types: PollutionTypes;
}
此刻我试图以这种方式进行比较,但它不起作用。
tmp = pollutionTypes.map(value => value.CO);
if (tmp != undefined || tmp != null) {
//do something
}
当我试图在控制台上显示这个对象时,我得到了类似的东西:
[undefined]
0: undefined
length: 1
但这不等于未定义:/
你知道如何解决这个问题吗?感谢您的回答。
您在控制台中得到了正确的东西,它表明您得到了一个数组。内容恰好是undefined
.
const arrayWithUndefined = [undefined];
console.log(arrayWithUndefined);
您可以过滤数组并删除未定义的值。然后查看您的数组中是否有值。
const types = {
"city_name": "warszawa",
"pollution_types": {
"O3": 52.66
}
}; // NO CO present in this data to simulate undefined.
const pollutionTypes = [types.pollution_types];
tmp = pollutionTypes.map(value => value.CO);
console.log('Before filter:', tmp);
tmp = tmp.filter(function( element ) {
return element !== undefined;
});
console.log('After filter:', tmp);
if (tmp.length) { // Check if tmp has values in it.
console.log('tmp has elements in it');
//do something
} else {
console.log('tmp is empty');
}
这将返回,tmp is empty
因为数组中没有 CO 值。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句