gpt4 book ai didi

如果找不到数组中的元素,Javascript 函数会尝试该元素

转载 作者:行者123 更新时间:2023-11-29 23:17:13 24 4
gpt4 key购买 nike

我在获取县/区的 React App 中有以下 js 函数

这有助于获得 administrative_area_level_2

    export const getDistrict = place => {
var filtered_array = place.address_components.filter(function(address_component)
{
return address_component.types
return district
}

如何修改上述函数以首先有效地检查 administrative_2,如果不存在则获取 administrative_1

最佳答案

.filter 在这里没有多大意义,因为你不需要创建一个中间数组,你只需要找到一个值。您可以使用 .find 返回 administrative_area_level_2,如果找到,则返回 administrative_area_level_1,否则 unknown:

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';
};

或者,为了让您的代码更加 DRY,将 .findlong_name 访问抽象为一个单独的函数:

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';
};

关于如果找不到数组中的元素,Javascript 函数会尝试该元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52350686/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com