2017-10-19 17 views
1

J'ai un tableau en javascript. J'ai essayé de faire une recherche dans l'index, mais c'est très frustrant. Il y a un objet à l'intérieur d'un tableau, et à l'intérieur de l'objet, un tableau a une valeur.javascript array multidimension index de recherche

C'est ce que le code source ressemble à:

rows = [{"id":"id0","cell":["array1","array2"]},{"id":"id1","cell":["array3","array4"]}]; 

J'ai essayé:

var v = {cell:["array1","array2"]}; 
rows.indexOf(v) 

Et aussi un bouton radio:

<input type="radio" name='array' value="array1, array2"> 

jQuery ici:

var i = $("input:checked").val().split(','); 
rows.indexOf(i) 

qui a un résultat d'index de -1

+0

@ObsidianAge oui j'utilise split() pour faire de la valeur un tableau – faddi

Répondre

3

Essayez ceci. C'est une approche fonctionnelle qui parcourt chaque index dans les lignes et renvoie true s'il y a correspondance.

var rows = [{"id":"id0","cell":["array1","array2"]},{"id":"id1","cell":["array3","array4"]}]; 
var index = rows.findIndex(function(i) { 
    return JSON.stringify(i.cell) == JSON.stringify(["array1","array2"]) 
}); 
console.log(index); 

La sortie doit renvoyer 0. La raison pour laquelle nous devons convertir les deux objets en JSON.strings est due à la façon dont javascripts gère l'égalité de deux objets. Vous pouvez en savoir plus à ce sujet here.

+0

garder à l'esprit si le tableau était '[" array2 "," array1 "]' il ne correspondrait pas. –

+0

comment appeler elemen de array cell foreach statement? – faddi