2017-10-19 1 views
1

Ich habe ein Array in Javascript. Ich habe versucht, den Index zu suchen, aber es ist sehr frustrierend. In einem Array befindet sich ein Objekt, und innerhalb des Objekts befindet sich ein Array als Wert.Javascript Array Multidimension Suchindex

Dies ist, was der Quellcode wie folgt aussieht:

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

und haben auch einen Radio-Button:

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

ich dieses versucht habe

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

jQuery hier:

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

mit einem Indexergebnis von -1

+0

@ObsidianAge ja ich benutze split(), um den Wert ein Array – faddi

Antwort

3

Versuchen Sie dies. Es ist ein funktionaler Ansatz, der jeden Index in Zeilen durchläuft und bei einer Übereinstimmung true zurückgibt.

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); 

Der Ausgang sollte 0 zurückgeben. Der Grund, warum wir beide Objekte in JSON.strings konvertieren müssen, liegt daran, wie Javascripts die Gleichheit zweier Objekte behandeln. Sie können mehr darüber lesen here.

+0

beachten Sie, wenn die Array war '[" Array2 "," Array1 "]' es würde nicht übereinstimmen. –

+0

wie elemen der array zelle foreach statement anrufen? – faddi