我正在尝试搜索对象数组中包含的字符串。
image_array = [
{image: '/assets/monkey-face.jpg', link_url: '/animal/showit?animal=Monkey'},
{image: '/assets/tiger-face.jpg', link_url: '/animal/showit?animal=Tiger'}
]
在url参数showit或图片中找不到字符串'monkey'或'tiger'。
image_array.IndexOf
jQuery.inArray
如果我尝试遍历数组/对象并搜索我得到的字符串:
"Object #<Object> has no method 'search'"
我在哪里出错 - 为什么当对象中包含字符串时它会返回-1?
答案 0 :(得分:5)
试试这个:
for(var i = 0; i < image_array.length; i++){
if(image_array[i].link_url.indexof("Monkey") != -1){
// Item found
}
}
答案 1 :(得分:2)
数组没有搜索方法 - 它用于字符串。试试$.grep()
var result = $.grep(image_array, function(item){
return item.link_url.indexOf('Monkey') >= 0;
})
//result will be an array with all items having `Monkey` in link_url
console.log(result)
演示:Fiddle
答案 2 :(得分:0)
由于您正在尝试检查对象值中是否包含字符串,假设该字符串未用作任何键值,请尝试以下操作:
return JSON.stringify(image_array).indexOf("monkey") > 0
希望这会有所帮助:)