1

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", …}
Dev. Joel
  • 23,229
  • 3
  • 25
  • 44
Paula Marín
  • 101
  • 2
  • 11

1 Answers1

4

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

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

Arrow Functions

var array = [
 {id: "6051", nombre: "T CC COMERCIAL", pendiente: "15 und", ejecutado: "50 M", fabrica: "35 und"},
 {id: "6618", nombre: "T. OCCIDENTE", pendiente: "15 und", ejecutado: "50 M", fabrica: "35 und"},
 {id: "6668", nombre: "T GENTE BBVA", pendiente: "15 und", ejecutado: "50 M", fabrica: "35 und"}
];
let index = array.findIndex(el=> el.id ==6618);
console.log(index);
Dev. Joel
  • 23,229
  • 3
  • 25
  • 44
  • Muchas gracias, y si lo fuera a buscar por el nombre. Cómo sería? – Paula Marín Apr 07 '19 at 23:12
  • 1
    @PaulaMarín `el.id`, aquí la variable `el` es el elemento iterado, ahora si desea buscar por otra propiedad como nombre, sería `el.nombre==='algunnombre'` , he añadido una explicación breve del funcionamiento, Saludos. – Dev. Joel Apr 07 '19 at 23:40