Stack Overflow en español Asked on January 2, 2021
Estoy leyendo un array de objetos JSON con for ... in
de Javascript. Y ocurre algo que me llama la atención. Yo quiero usar el índice (de base 0
) para mostrar en qué fila estoy en la lectura, pero empezando por 1
, no por 0
. Entonces intento mostrar un suma de i + 1
dentro del bucle (quiero sumar para mostrar i+1
en pantalla, no se trata de modificar i
). Pero el comportamiento es como si i
fuese un string:
var mData=`[
{
"k1":"v1.1",
"k2":"v1.2"
},
{
"k1":"v2.1",
"k2":"v2.2"
},
{
"k1":"v3.1",
"k2":"v3.2"
}
]`;
var mJson=JSON.parse(mData);
for (i in mJson){
console.log(`Data ${i+1}n`);
console.log(`tk1: ${mJson[i].k1} ntk2: ${mJson[i].k2}`);
}
Como pueden ver, me muestra Data01, Data11, Data21
.
Pero si uso parseInt()
sí funciona:
var mData=`[
{
"k1":"v1.1",
"k2":"v1.2"
},
{
"k1":"v2.1",
"k2":"v2.2"
},
{
"k1":"v3.1",
"k2":"v3.2"
}
]`;
var mJson=JSON.parse(mData);
var x=0;
for (i in mJson){
x=i;
console.log(`Data ${parseInt(i)+1}n`);
console.log(`tk1: ${mJson[i].k1} ntk2: ${mJson[i].k2}`);
}
Entonces, ¿i
es un String u otro tipo de dato? ¿Por qué no es un entero siendo que es un contador? ¿Habría otra forma de hacer lo que quiero, **mostrar el valor de i
más uno, OJO, sin modificar i
en su valor?
Entonces, ¿i es un String u otro tipo de dato?
Es un string.
¿Por qué no es un entero siendo que es un contador?
No es un contador. El uso de for...in
es recorrer las propiedades de un objeto, así que en la variable i
se guarda el nombre de la propiedad, de ahí su tipo string.
¿Habría otra forma de hacer lo que quiero, **mostrar el valor de i más uno, OJO, sin modificar i en su valor?
Sí, con un forEach()
var mData=`[
{
"k1":"v1.1",
"k2":"v1.2"
},
{
"k1":"v2.1",
"k2":"v2.2"
},
{
"k1":"v3.1",
"k2":"v3.2"
}
]`;
var mJson=JSON.parse(mData);
mJson.forEach((elemento,i)=>{
console.log(`Data ${i+1}n`);
console.log(`tk1: ${elemento.k1} ntk2: ${elemento.k2}`);
});
Correct answer by Lobos on January 2, 2021
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP