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íakeypara obtener la clave ymyDictionary[key]obtener el valorRespuestas:
Para recorrer la clave / valores, use un
for inciclo: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.entriesque funcione en TypeScript¿Qué tal esto?
fuente
keyen 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
inoperador, 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
keyy elvaluepuede serconst.hasOwnPropertycheque 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-builtinsregla, 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