indexOf una matriz de cadenas [duplicado]

-2

Estoy buscando una forma sencilla de encontrar el índice de un carácter / cadena entre una lista de caracteres.

Algo que parezca

"3.14".indexOf([".",","])
"3,14".indexOf([".",","])

Ambos deberían regresar 1.

0
3

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 execmétodo en expresiones regulares que devuelve un objeto que tiene el índice del inicio de la coincidencia.

3
  • 2
    ¿Por qué no usar simplemente en su searchlugar? 13 de oct a las 23:57
  • ¡No tenía idea de que existía la búsqueda! 13 de oct a las 23:58
  • Gracias ! wow -3 No pensé que mi pregunta fuera tan estúpida :)
    miorey
    14 oct a las 0:12
2

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 puede utilizar 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", [".",","]))
0