Javascript函数,用于在未找到元素时尝试数组中的元素

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

我在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
,然后如果不存在,则获取
管理\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';
};

您可以在方法中添加逻辑,以便在管理区域级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别级别