Estoy tratando de obtener el índice del elemento principal dado un elemento dentro de los elementos secundarios, por ejemplo, tengo una variable de list (2) [Array(1), Array(2)] con esta estructura:
[ [ {id: "1",contactType: {id: "phoneNumber",company: {id: "01",name: "Company01"}},value: "5555555555"}, ], [ {id: "2",contactType: {id: "phoneNumber",company: {id: "03",name: "Company03"}},value: "7777777777"}, {id: "3",contactType: {id: "phoneNumber",company: {id: "05",name: "Company05"}},value: "8888888888"}, ], ] Intenté usar includes y findIndex para verificar si dicho elemento existe primero y luego obtener el índice principal:
list.includes('5555555555', 0); Esperaba ser true porque le pedí a include que comenzara a buscar en el índice 0 de la lista exactamente donde está el elemento "5555555555" , pero obtuve false en su lugar.
También probé con:
list.findIndex(x => x.value === '5555555555'); Esperaba 0 ya que el elemento 5555555555 está en el índice principal 0. Pero obtuve -1 en su lugar.
También intenté usar flat() para ingresar a los niños y el uso includes , pero luego pierdo el índice 0 y 1 de la list original.
Rendimiento esperado:
foo(list,'7777777777'); debería devolver 1 ya que ese elemento está dentro de la segunda matriz de la list o foo(list,'8888888888'); también debería devolver 1 ya que ese elemento también está dentro de la segunda matriz de la list .
¿Alguien puede orientarme sobre cómo abordar este problema?
Usar Array.findIndex con condición
const data = [ [ {id: "1",contactType: {id: "phoneNumber",company: {id: "01",name: "Company01"}},value: "5555555555"}, ], [ {id: "2",contactType: {id: "phoneNumber",company: {id: "03",name: "Company03"}},value: "7777777777"}, {id: "3",contactType: {id: "phoneNumber",company: {id: "05",name: "Company05"}},value: "8888888888"}, ], ]; const index = data.findIndex(item => item.findIndex(node => node.value === "5555555555") > -1); console.log(index)