Javascript函数,用于在未找到元素时尝试数组中的元素
我在React应用程序中有以下js函数,可以获取县/区 这可以获得Javascript函数,用于在未找到元素时尝试数组中的元素,javascript,Javascript,我在React应用程序中有以下js函数,可以获取县/区 这可以获得管理区域级别2 export const getDistrict = place => { var filtered_array = place.address_components.filter(function(address_component) { return address_component.types return district } 如何修改上述函数以首先有效地检查管理\u
管理区域级别2
export const getDistrict = place => {
var filtered_array = place.address_components.filter(function(address_component)
{
return address_component.types
return district
}
如何修改上述函数以首先有效地检查
管理\u 2
,然后如果不存在,则获取管理\u 1。
在这里没有多大意义,因为您不需要创建中间数组,只需要找到一个值。您可以使用.find
返回管理区\级别\ 2
,如果找到,否则返回管理区\级别\ 1
,否则未知
:
export const getDistrict = ({ address_components }) => {
const lvl2 = address_components.find(({ types }) => types.includes('administrative_area_level_2'));
if (lvl2) return lvl2.long_name;
const lvl1 = address_components.find(({ types }) => types.includes('administrative_area_level_1'));
return lvl1 ? lvl1.long_name : 'Unknown';
};
或者,为了使您的代码更加干爽,将抽象出来。查找和长\u名称访问到一个单独的函数中:
const makeFindType = arr => levelNum => {
const found = arr.find(({ types }) => types.includes('administrative_area_level_' + levelNum));
if (found) return found.long_name;
};
export const getDistrict = ({ address_components }) => {
const findType = makeFindType(address_components);
return findType('2') || findType('1') || 'Unknown';
};
您可以在方法中添加逻辑,以便在管理区域级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别