Realmente no sé cómo explicar esto, pero aquí está mi problema.
tengo una cadena "myKey[2]" y quiero
const values = { "myKey": ["hey", "oh"], "b": ["something"] }; const str = "myKey[2]"; Mi pregunta es: ¿cómo obtener "oh" con una cadena como nombre de variable + hay algo en js que también pueda leer "myarray.key" como variable sin aplicar muchas expresiones regulares y funciones?
Como la indexación de la matriz comienza desde cero, acceder a "myKey[2]" le dará indefinido. Suponiendo que desee tomar el segundo elemento de la matriz, podemos hacerlo
const values = { "myKey": ["hey", "oh"], "b": ["something"] }; const str = "myKey[1]"; const result=values[str.slice(0, str.indexOf('['))][ Number(str.slice(str.indexOf('[') + 1, str.indexOf(']'))) ]; console.log(result);Su cadena debe ser
const str = values.myKey[1];
o si su clave tiene guiones y tal
const str = values['myKey'][1];
Tenga en cuenta que el índice correcto en este caso es 1 , no 2 , ya que la numeración de índices en las matrices comienza desde 0 y no desde 1 .