Tengo esta matriz [ "one", "two", "three" ] .
Ahora, dado un índice n , ¿cómo puedo encontrar el índice del elemento de matriz, en el que se encuentra el carácter en el índice n ? Por carácter en el índice n me refiero al carácter de todas las cadenas en general, es decir, de "onetwothree" . Por ejemplo: el carácter en el índice n = 2 es "e" , para n = 3 , es "t" , para n = 4 es "w" , etc.
El resultado que busco es el índice del elemento de matriz donde se encontró originalmente el carácter en el índice n .
Ejemplos para la matriz dada:
| Aporte | Producción | … porque el carácter en el índice n era |
|---|---|---|
n = 2 | 0 | "e" de "one" |
n = 3 | 1 | "t" de "two" |
n = 4 | 1 | "w" de "two" |
n = 9 | 2 | "e" de "three" |
Puede encontrar el índice tomando el conteo deseado y restando la longitud del artículo.
const findIndex = (array, count) => array.findIndex(s => (count -= s.length) <= 0), array = ["one", "two", "three"]; console.log(findIndex(array, 5));Puede atravesar la matriz y realizar un seguimiento de la suma de las longitudes de los elementos. Tan pronto como vea que la suma ha excedido el índice objetivo, significa que encontró el índice del elemento.
let getIndex = (data, dest) => { let sum = 0; for (let i = 0; i < data.length; i++) { sum += data[i].length if (dest < sum) { return i; } } return -1; } console.log(getIndex(["one", "two", "three"], 4)); Supone que el dest es un índice basado en cero.