2016-08-16 3 views
2

Ich habe ein Array wie:Wie finde ich den Index eines Objekts in einem Array, indem ich den Eigenschaftswert in JavaScript überprüfe?

$scope.myArray = [{ 
    columnName: "processed1", 
    dataType: "char" 
}, { 
    columnName: "processed2", 
    dataType: "char" 
}, { 
    columnName: "processed3", 
    dataType: "char" 
}]; 

ich die index von object finden will, den Eigenschaftswert "processed2" erfüllt

Wie kann ich es tun? Ich versuchte array.indexOf() Methode verwendet, aber ich habe Reaktion -1

Antwort

3

Verwenden Array#findIndex, findIndex() Die Methode gibt einen Index in dem Array, wenn ein Element in dem Array die Prüffunktion vorgesehen erfüllt. Andernfalls wird -1 zurückgegeben.

Array#indexOf fehl wie arrayobjects enthält, testet indexOf() das Element mit triple-equals operator und object ist object gleich, wenn es um gleiche memory-location

bezieht sich

var myArray = [{ 
 
    columnName: "processed1", 
 
    dataType: "char" 
 
}, { 
 
    columnName: "processed2", 
 
    dataType: "char" 
 
}, { 
 
    columnName: "processed3", 
 
    dataType: "char" 
 
}]; 
 
var index = myArray.findIndex(function(el) { 
 
    return el.columnName == 'processed2'; 
 
}); 
 
console.log(index);

1

Sie können ein verwenden einfach für die Schleife.

for(var i=0;i < $scope.myArray.length; i++) 
{ 
    if($scope.myArray[i].columnName == 'processed2') { 
    // Do something with found item 
    break; 
    } 
} 
Verwandte Themen