Obtener indice de un elemento en un Array de Objetos JavaScript

publicado por: Anonymous

Buen día, tengo el siguiente array de objetos, y quisiera poder imprimir la posición del id “6146”, es decir la 4. Lo he intentado con indexOf pero siempre devuelve -1

0: {id: "6051", nombre: "T CC COMERCIAL", pendiente: "15 und", ejecutado: "50 M", fabrica: "35 und", …}
1: {id: "6126", nombre: "T AREA EFAN FILIAL SEGUROS VIDA", pendiente: "15 und", ejecutado: "50 M", fabrica: "35 und", …}
2: {id: "6137", nombre: "T AREA EFAN FILIAL COMERCIALIZADORA", pendiente: "15 und", ejecutado: "50 M", fabrica: "35 und", …}
3: {id: "6145", nombre: "T AREA EFAN FILIAL SEGUROS", pendiente: "15 und", ejecutado: "50 M", fabrica: "35 und", …}
4: {id: "6146", nombre: "T AREA EFAN COMERCIAL", pendiente: "15 und", ejecutado: "50 M", fabrica: "35 und", …}
5: {id: "6150", nombre: "T. BOGOTA SUR", pendiente: "15 und", ejecutado: "50 M", fabrica: "35 und", …}
6: {id: "6151", nombre: "T BANCA PERSONAL/PREMIUM", pendiente: "15 und", ejecutado: "50 M", fabrica: "35 und", …}
7: {id: "6161", nombre: "T.  ORIENTE", pendiente: "15 und", ejecutado: "50 M", fabrica: "35 und", …}
8: {id: "6163", nombre: "T OCCIDENTE", pendiente: "15 und", ejecutado: "50 M", fabrica: "35 und", …}
9: {id: "6165", nombre: "T OCCIDENTE", pendiente: "15 und", ejecutado: "50 M", fabrica: "35 und", …}
10: {id: "6168", nombre: "T NORTE", pendiente: "15 und", ejecutado: "50 M", fabrica: "35 und", …}
11: {id: "6169", nombre: "T BOGOTA", pendiente: "15 und", ejecutado: "50 M", fabrica: "35 und", …}
12: {id: "6185", nombre: "T  CENTRO", pendiente: "15 und", ejecutado: "50 M", fabrica: "35 und", …}
13: {id: "6186", nombre: "T. EJE CAFETERO", pendiente: "15 und", ejecutado: "50 M", fabrica: "35 und", …}
14: {id: "6190", nombre: "GERENCIA TERRITORIAL BOGOTA SUR", pendiente: "15 und", ejecutado: "50 M", fabrica: "35 und", …}
15: {id: "6618", nombre: "T. OCCIDENTE", pendiente: "15 und", ejecutado: "50 M", fabrica: "35 und", …}
16: {id: "6668", nombre: "T GENTE BBVA", pendiente: "15 und", ejecutado: "50 M", fabrica: "35 und", …}

solución

Una opción sería utilizar el método findIndex() para obtener el indice del elemento que cumpla la condición deseada, para este caso cuando el id sea 6618 .

El funcionamiento, es que itera el array hasta encontrar el elemento, para los ejemplos la variable el hará referencia al elemento iterado. este elemento será un objeto por lo tanto podrá hacer referencia a cualquier propiedad ya sea el.id o el.nombre u otra propiedad para evaluarlo con algún valor.

Ejm (buscamos la posición del elemento con id 6618 , retornará 1 ya que los array inician en la posición 0)

Función anónima

_x000D_

_x000D_

var array = [_x000D_
	{id: "6051", nombre: "T CC COMERCIAL", pendiente: "15 und", ejecutado: "50 M", fabrica: "35 und"},_x000D_
	{id: "6618", nombre: "T. OCCIDENTE", pendiente: "15 und", ejecutado: "50 M", fabrica: "35 und"},_x000D_
	{id: "6668", nombre: "T GENTE BBVA", pendiente: "15 und", ejecutado: "50 M", fabrica: "35 und"}_x000D_
];_x000D_
let index = array.findIndex(function(el){_x000D_
	return el.id == 6618; // or el.nombre=='T NORTE';_x000D_
});_x000D_
console.log(index);

_x000D_

_x000D_

_x000D_

Arrow Functions

_x000D_

_x000D_

var array = [_x000D_
	{id: "6051", nombre: "T CC COMERCIAL", pendiente: "15 und", ejecutado: "50 M", fabrica: "35 und"},_x000D_
	{id: "6618", nombre: "T. OCCIDENTE", pendiente: "15 und", ejecutado: "50 M", fabrica: "35 und"},_x000D_
	{id: "6668", nombre: "T GENTE BBVA", pendiente: "15 und", ejecutado: "50 M", fabrica: "35 und"}_x000D_
];_x000D_
let index = array.findIndex(el=> el.id ==6618);_x000D_
console.log(index);

_x000D_

_x000D_

_x000D_

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *