Estoy tratando de implementar un código que me devolverá un elemento aleatorio de un diccionario en TypeScript. Hasta ahora, he probado esto:
dict = { 0: "example 1", 1: "example 2", 2: "example 3" } randomGen() { var num = Math.floor(Math.random() * (3)); console.log(this.dict[num]) }Sin embargo, esto me arroja un error:
El elemento tiene implícitamente un tipo 'cualquiera' porque la expresión de tipo 'número' no se puede usar para indexar el tipo '{ 0: cadena; 1: cadena; 2: cadena; }
¿Hay alguna forma de evitar esto? ¿Cómo puedo seleccionar aleatoriamente un elemento de mi diccionario?
Aquí tienes. Utilizo el diccionario que creaste y selecciono aleatoriamente un número según la longitud del diccionario (que son tus claves). Luego devuelva el valor de la clave aleatoria.
Aquí está para Typescript (prueba en https://www.typescriptlang.org/play ):
var dict: {[key: number]: string} = { 0: "example 1", 1: "example 2", 2: "example 3" } function randomGen() { var value = dict[Math.floor(Math.random() * Object.keys(dict).length)]; return value; } console.log(randomGen());Y debajo está el JavaScript básico:
var dict = { 0: "example 1", 1: "example 2", 2: "example 3" } function randomGen() { var value = dict[Math.floor(Math.random() * Object.keys(dict).length)]; return value; } console.log(randomGen());