Estoy buscando una forma sencilla de encontrar el índice de un carácter/cadena entre una lista de caracteres.
Algo que parece
"3.14".indexOf([".",","]) "3,14".indexOf([".",","]) Ambos deben devolver 1 .
De una sola mano:
const testRegex = /\.|,/ const match = testRegex.exec("3.14"); console.log(match && match.index) Utiliza una expresión regular para buscar cualquier carácter y utiliza el método exec en expresiones regulares que devuelve un objeto que tiene el índice del inicio de la coincidencia.
Puede recorrer la matriz y devolver el índice del primer carácter cuyo índice no es -1 :
function getIndex(str, array){ for(e of array){ let index = str.indexOf(e); if(index != -1){ return index; } } } console.log(getIndex("3.14", [".",","])) console.log(getIndex("3,14", [".",","])) También puedes usar Array.reduce :
function getIndex(str, array){ return array.reduce((a,b) => a == -1 ? a = str.indexOf(b) : a, -1) } console.log(getIndex("3.14", [".",","])) console.log(getIndex("3,14", [".",","]))