Ich versuche nach einer Zeichenfolge zu suchen, die in einem Objektarray enthalten ist.

image_array = [
            {image: '/assets/monkey-face.jpg', link_url: '/animal/showit?animal=Monkey'},
            {image: '/assets/tiger-face.jpg', link_url: '/animal/showit?animal=Tiger'} 

]

Findet die Zeichenfolge 'Affe' oder 'Tiger' nicht im URL-Parameter showit oder im Bild.

    image_array.IndexOf 
jQuery.inArray

Wenn ich versuche, das Array / Objekt zu durchlaufen und nach der Zeichenfolge zu suchen, die ich erhalte:

"Object #<Object> has no method 'search'"

Wo gehe ich falsch - warum gibt es -1 zurück, wenn das Objekt die Zeichenfolge enthält?

0
uber_n00b 3 Dez. 2013 im 10:10

3 Antworten

Beste Antwort

Versuche dies:

for(var i = 0; i < image_array.length; i++){
  if(image_array[i].link_url.indexof("Monkey") != -1){
    // Item found
  }
}
5
Ringo 4 Dez. 2013 im 03:48

Array hat keine Suchmethode - es ist für Zeichenfolge. Versuchen Sie es mit $ .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)

Demo: Fiddle

2
Arun P Johny 3 Dez. 2013 im 06:12

Versuchen Sie Folgendes, da Sie versuchen zu überprüfen, ob eine Zeichenfolge in den Objektwerten enthalten ist, vorausgesetzt, die Zeichenfolge wird nicht als Schlüsselwert verwendet:

 return JSON.stringify(image_array).indexOf("monkey") > 0

Hoffe das hilft :)

0
MIdhun Krishna 3 Dez. 2013 im 06:44