Como encontrar o índice da matriz com um valor?

Diga que eu tenho esse

imageList = [100,200,300,400,500]; 

O que me dá

[0]100 [1]200 etc.

Existe alguma maneira em JavaScript para retornar o índice com o valor?

Ou seja, eu quero o índice para 200 , eu serei devolvido 1 .

você pode usar indexOf :

 var imageList = [100,200,300,400,500]; var index = imageList.indexOf(200); // 1 

você receberá -1 se não conseguir encontrar um valor na matriz.

Para array de objects use map com 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); 

Use a function jQuery jQuery.inArray

 jQuery.inArray( value, array [, fromIndex ] ) (or) $.inArray( value, array [, fromIndex ] ) 

Aqui está uma outra maneira de encontrar o índice de valor no array complexo em javascript. Espero que ajude alguém de verdade. Vamos supor que temos uma matriz JavaScript como a seguir,

 var studentsArray = [ { "rollnumber": 1, "name": "dj", "subject": "physics" }, { "rollnumber": 2, "name": "tanmay", "subject": "biology" }, { "rollnumber": 3, "name": "amit", "subject": "chemistry" }, ]; 

Agora, se tivermos um requisito para selecionar um object específico na matriz. Vamos supor que nós queremos achar o índice do estudante com nome Tanmay.

Podemos fazer isso iterando pelo array e comparando o valor na chave dada.

 function functiontofindIndexByKeyValue(arraytosearch, key, valuetosearch) { for (var i = 0; i < arraytosearch.length; i++) { if (arraytosearch[i][key] == valuetosearch) { return i; } } return null; } 

Você pode usar a function para encontrar o índice de um elemento específico como abaixo,

 var index = functiontofindIndexByKeyValue(studentsArray, "name", "tanmay"); alert(index); 

Use indexOf

 imageList.indexOf(200) 

que tal indexOf ?

 alert(imageList.indexOf(200)); 

Array.indexOf não funciona em algumas versões do Internet Explorer – existem muitas maneiras alternativas de fazer isso … veja esta pergunta / resposta: Como eu verifico se uma matriz inclui um object em JavaScript?

Quando as listas não são extremamente longas, esta é a melhor maneira que conheço:

 function getIndex(val) { for (var i = 0; i < imageList.length; i++) { if (imageList[i] === val) { return i; } } } var imageList = [100, 200, 300, 400, 500]; var index = getIndex(200); 

É possível usar uma function ES6 Array.prototype.findIndex .

MDN diz :

O método findIndex() retorna o índice do primeiro elemento na matriz que satisfaz a function de teste fornecida. Caso contrário, -1 é retornado.

 var fooArray = [5, 10, 15, 20, 25]; console.log(fooArray.findIndex(num=> { return num > 5; })); // expected output: 1 

Encontre um índice por propriedade do object.

Para encontrar um índice por propriedade de object:

 yourArray.findIndex(obj => obj['propertyName'] === yourValue) 

Por exemplo, existe um tal array:

 let someArray = [ { property: 'OutDate' }, { property: 'BeginDate'}, { property: 'CarNumber' }, { property: 'FirstName'} ]; 

Então, o código para encontrar um índice da propriedade necessária se parece com isso:

 let carIndex = someArray.findIndex( filterCarObj=> filterCarObj['property'] === 'CarNumber'); 
 // Instead Of var index = arr.indexOf(200) // Use var index = arr.includes(200); 

Por favor Note : Inclui function é um método de instância simples na matriz e ajuda a encontrar facilmente se um item está na matriz (incluindo NaN ao contrário de indexOf)

Intereting Posts