首页 > 解决方案 > 如果属性未定义或不存在

问题描述

需要一点帮助。我有一组要过滤的属性。但是,如果某个属性不存在,我的视图将不会呈现,因为该属性变得未定义。我需要优雅地忽略或显示其他价值。

export const countryList = [
    {name: 'France', flagCode: 'fr'},
    {name: 'England', flagCode: 'england'},
    {name: 'Germany', flagCode: 'gm'},
    {name: 'default', flagCode: 'default'},
];

const country = `${nationality}`
const flag = countryList.filter(function (el) {
    return el.name.toLowerCase() === country.toLowerCase();
})[0].flagCode;

因此,如果${nationality}返回“意大利”,.flagCode将返回undefined. 我可以将意大利添加到我的数组中来解决这个问题,但是会有一些我想念的国家,需要一个更优雅的方法。所以在我的函数中,我需要检查是否undefined,如果它返回一个默认名称'default',如果它确实存在则返回数组中的值。提前致谢。

标签: javascriptreactjsecmascript-6

解决方案


您可以使用 OR 运算符||来执行此操作

const country = countryList.find(el => (el.name.toLowerCase() === country.toLowerCase());

const flag = (country && country.flagCode) || 'default';

推荐阅读