Sagen wir, ich habe das
imageList = [100,200,300,400,500];
Welches gibt mir
[0]100 [1]200
etc.
Gibt es in JavaScript eine Möglichkeit, den Index mit dem Wert zurückzugeben?
Dh ich möchte den Index für 200 , ich bekomme 1 zurückgegeben .
Sagen wir, ich habe das
imageList = [100,200,300,400,500];
Welches gibt mir
[0]100 [1]200
etc.
Gibt es in JavaScript eine Möglichkeit, den Index mit dem Wert zurückzugeben?
Dh ich möchte den Index für 200 , ich bekomme 1 zurückgegeben .
Antworten:
Sie können verwenden indexOf
:
var imageList = [100,200,300,400,500];
var index = imageList.indexOf(200); // 1
Sie erhalten -1, wenn im Array kein Wert gefunden werden kann.
Für Objekte Array verwenden map
mit indexOf
:
var imageList = [
{value: 100},
{value: 200},
{value: 300},
{value: 400},
{value: 500}
];
var index = imageList.map(function (img) { return img.value; }).indexOf(200);
console.log(index);
In modernen Browsern können Sie Folgendes verwenden findIndex
:
var imageList = [
{value: 100},
{value: 200},
{value: 300},
{value: 400},
{value: 500}
];
var index = imageList.findIndex(img => img.value === 200);
console.log(index);
Es ist Teil von ES6 und wird von Chrome, FF, Safari und Edge unterstützt
Verwenden Sie die Funktion jQuery.inArray von jQuery
jQuery.inArray( value, array [, fromIndex ] )
(or) $.inArray( value, array [, fromIndex ] )
Hier ist eine andere Möglichkeit, den Wertindex in einem komplexen Array in Javascript zu finden. Hoffe jemandem in der Tat zu helfen. Nehmen wir an, wir haben ein JavaScript-Array wie folgt:
var studentsArray =
[
{
"rollnumber": 1,
"name": "dj",
"subject": "physics"
},
{
"rollnumber": 2,
"name": "tanmay",
"subject": "biology"
},
{
"rollnumber": 3,
"name": "amit",
"subject": "chemistry"
},
];
Wenn wir nun ein bestimmtes Objekt im Array auswählen müssen. Nehmen wir an, wir möchten einen Index des Schülers mit dem Namen Tanmay finden.
Wir können dies tun, indem wir das Array durchlaufen und den Wert am angegebenen Schlüssel vergleichen.
function functiontofindIndexByKeyValue(arraytosearch, key, valuetosearch) {
for (var i = 0; i < arraytosearch.length; i++) {
if (arraytosearch[i][key] == valuetosearch) {
return i;
}
}
return null;
}
Sie können die Funktion verwenden, um den Index eines bestimmten Elements wie folgt zu finden:
var index = functiontofindIndexByKeyValue(studentsArray, "name", "tanmay");
alert(index);
Array.indexOf
funktioniert in einigen Versionen des Internet Explorers nicht - es gibt jedoch viele alternative Möglichkeiten ... siehe diese Frage / Antwort: Wie überprüfe ich, ob ein Array ein Objekt in JavaScript enthält?
Es ist möglich, eine ES6
Funktion zu verwenden Array.prototype.findIndex
.
MDN sagt :
Die
findIndex()
Methode gibt den Index des ersten Elements im Array zurück, das die bereitgestellte Testfunktion erfüllt. Andernfalls wird -1 zurückgegeben.
var fooArray = [5, 10, 15, 20, 25];
console.log(fooArray.findIndex(num=> { return num > 5; }));
// expected output: 1
Suchen Sie einen Index nach Objekteigenschaft.
So finden Sie einen Index nach Objekteigenschaft:
yourArray.findIndex(obj => obj['propertyName'] === yourValue)
Zum Beispiel gibt es ein solches Array:
let someArray = [
{ property: 'OutDate' },
{ property: 'BeginDate'},
{ property: 'CarNumber' },
{ property: 'FirstName'}
];
Dann sieht der Code zum Finden eines Index der erforderlichen Eigenschaften folgendermaßen aus:
let carIndex = someArray.findIndex( filterCarObj=>
filterCarObj['property'] === 'CarNumber');
Hier ist meine Sichtweise, anscheinend überprüfen die meisten Lösungen nicht, ob das Element vorhanden ist, und es entfernt zufällige Werte, wenn es nicht vorhanden ist.
Überprüfen Sie zunächst, ob das Element vorhanden ist, indem Sie nach seinem Index suchen . Wenn es nicht vorhanden ist , zu entfernen , indem es seinen Index unter Verwendung des Spleiß - Verfahren
elementPosition = array.indexOf(value);
if(elementPosition != -1) {
array.splice(elementPosition, 1);
}
Referenzarray:
var array = [
{ ID: '100', },
{ ID: '200', },
{ ID: '300', },
{ ID: '400', },
{ ID: '500', }
];
Verwenden von filter
und indexOf
:
var in_array = array.filter(function(item) {
return item.ID == '200' // look for the item where ID is equal to value
});
var index = array.indexOf(in_array[0]);
Durchlaufen jedes Elements im Array mit indexOf
:
for (var i = 0; i < array.length; i++) {
var item= array[i];
if (item.ID == '200') {
var index = array.indexOf(item);
}
}
// Instead Of
var index = arr.indexOf(200)
// Use
var index = arr.includes(200);
Bitte beachten Sie : Die Includes-Funktion ist eine einfache Instanzmethode für das Array und hilft dabei, leicht zu finden, ob sich ein Element im Array befindet (einschließlich NaN im Gegensatz zu indexOf).