如何正确过滤types包含administrative_area_level_1的地址对象
问题分析
你原来的代码存在2处错误导致无法生效:
- 箭头函数语法错误,JS 中箭头函数的正确写法是
=>,你写的==>属于无效语法 - 逻辑判断错误:不能直接将
types数组和字符串做相等比较,需要调用数组的includes()方法检测指定值是否为数组成员
正确实现代码
如果需要返回所有匹配项组成的数组,使用filter方法:
const matchedItems = this.Address.filter(item => item.types.includes('administrative_area_level_1'))
如果确认只有一个匹配项,需要直接返回目标对象(无匹配时返回undefined),可以用更高效的find方法:
const matchedItem = this.Address.find(item => item.types.includes('administrative_area_level_1'))
运行结果
以上代码执行后得到的结果和你预期的完全一致:
{ "long_name": "Victoria", "short_name": "VIC", "types": [ "administrative_area_level_1", "political" ] }
内容的提问来源于stack exchange,提问作者Samithra niroshana
相关产品推荐
相关产品推荐

