Javascript 搜索对象数组,如果值与字符串或子字符串匹配,则返回整个对象
我在一个数组中有多个对象(我缩短了示例,因此没有多大意义,但我认为最好理解这个问题): 我想查看这些对象并搜索一种类型,如“country”。如果找到类型“country”,我希望返回整个对象,因此:Javascript 搜索对象数组,如果值与字符串或子字符串匹配,则返回整个对象,javascript,search,javascript-objects,Javascript,Search,Javascript Objects,我在一个数组中有多个对象(我缩短了示例,因此没有多大意义,但我认为最好理解这个问题): 我想查看这些对象并搜索一种类型,如“country”。如果找到类型“country”,我希望返回整个对象,因此: { id: 4, name: "Deutschland" types: "country, political" } 我得到了以下方法: var searchFor = "city"; var addressComponent = response.address_com
{
id: 4,
name: "Deutschland"
types: "country, political"
}
我得到了以下方法:
var searchFor = "city";
var addressComponent = response.address_components.filter(function(e) {
return searchFor.indexOf(e.types) != -1;
});
如果我搜索“city”,它会起作用,但如果我搜索像“country”这样的子字符串(?)则不会起作用。
这种方法正确吗?如果在我的示例中搜索“country”,我是否可以扩展它以返回正确的结果?假设country是类型的子字符串,然后简单地以另一种方式执行
return e.types.indexOf( searchFor ) != -1;
你倒过来了。
返回e.types.indexOf(searchFor)!=-1;
var地址\u组件=[
{
id:1,
姓名:"41",,
类型:“街道号码”
},
{
id:2,
名称:“好未来”,
类型:“路线”
},
{
id:3,
姓名:“门钦”,
类型:“城市”
},
{
id:4,
名称:“德国”,
类型:“国家,政治”
}
]
var searchFor=“政治”;
var响应=地址\组件。过滤器(函数(e){
返回e.types.indexOf(searchFor)!=-1;
});
控制台日志(响应)代码>
return e.types.indexOf( searchFor ) != -1;