tengo dos matrices
const array1 = [12, 13, 14, 15, 16, 17, 18, 19, 20] const array2 = [17, 18]Quiero devolver los primeros tres elementos de la matriz1 después de comparar el índice del elemento de la matriz2 17 o el primer elemento con la matriz1.
O/P deseado de array1 después de comparar es [14, 15, 16]
He intentado obtener el índice del elemento en particular.
const indexOf17FromArray1 = array1.indexOf(array2[0]) //5solo haz array.slice((idx - 3), idx)
Puede combinar el uso de los métodos de matriz indexOf y slice .
Primero determine el último índice (como ya lo tiene). Luego, según la longitud deseada, modifíquelo para usarlo con slice . slice toma los índices inicial y final.
const array1 = [12, 13, 14, 15, 16, 17, 18, 19, 20]; const array2 = [17, 18]; const length = 3; const indexOf17FromArray1 = array1.indexOf(array2[0]) console.log(array1.slice(indexOf17FromArray1 - length, indexOf17FromArray1));Puede obtener el índice y verificar si -1 o restar un desplazamiento y obtener una nueva matriz.
const array = [12, 13, 14, 15, 16, 17, 18, 19, 20], value = 17, index = array.indexOf(value), result = index === -1 ? [] : array.slice(Math.max(index - 3, 0), index); console.log(result);