En mi código, tengo un par de diccionarios (como se sugiere aquí ) que está indexado en cadena. Debido a que este es un tipo un poco improvisado, me preguntaba si hay alguna sugerencia sobre cómo podría recorrer cada clave (o valor, de todas formas necesito las claves). Cualquier ayuda apreciada!
myDictionary: { [index: string]: any; } = {};
javascript
html
typescript
ben657
fuente
fuente
for (var key in myDictionary) { }
:? Dentro del bucle, usaríakey
para obtener la clave ymyDictionary[key]
obtener el valorRespuestas:
Para recorrer la clave / valores, use un
for in
ciclo:fuente
Object.keys(target).forEach(key => { let value = target(key); /* Use key, value here */ });
. Si debe mostrar este método, al menos mencione los riesgos y las mejores alternativas para aquellos que aún no conocen mejor.<ES 2017 :
> = ES 2017 :
fuente
Object.entries
que funcione en TypeScript¿Qué tal esto?
fuente
key
en absoluto, simplemente deje en blanco:[ , value]
. (Gracias a este comentario del problema ).Hay una advertencia para el ciclo de clave / valor que Ian mencionó. Si es posible que los Objetos tengan atributos asociados a su Prototipo, y cuando use el
in
operador, estos atributos se incluirán. Por lo tanto, querrá asegurarse de que la clave sea un atributo de su instancia, y no del prototipo. Los IE más antiguos son conocidos porindexof(v)
aparecer como una clave.fuente
key
y elvalue
puede serconst
.hasOwnProperty
cheque desde el objeto de destino, sino hacer esto: de lo...if (Object.prototype.hasOwnProperty.call(myDictionary, key))...
contrario, si está utilizando eslint con lano-prototype-builtins
regla, emitirá un error.La forma más corta de obtener todos los valores de diccionario / objeto:
fuente
Para obtener las llaves:
fuente
Ians Answer es buena, pero debe usar const en lugar de permitir la clave porque nunca se actualiza.
fuente