Maison > Questions et réponses > le corps du texte
JS : utilisez des objets pour obtenir des valeurs réussies, utilisez des tableaux, et il y aura des valeurs de type indéfini
var bodydata = $("body").data();
// console.log(bodydata);
bodyDatas = {};/*使用了个全局变量bodyDatas*/
_.forIn(bodydata,function(value,key){
if(typeof value == "string"){
value = parseLodash(n);
}
if(value[0] == "200"){
var keyarray = key.split('_');
var key0 = keyarray[0];
var key1 = keyarray[1];
var key2 = keyarray[2];
_.forIn(_.keys(value[2]), function(v,k) {
if (!bodyDatas[key0]) {
bodyDatas[key0] = {};
}
if (!bodyDatas[key0][key1]) {
bodyDatas[key0][key1] = {};
}
if (!bodyDatas[key0][key1][key2]) {
bodyDatas[key0][key1][key2] = {};
}
if (!bodyDatas[key0][key1][key2][v]) {
bodyDatas[key0][key1][key2][v] = value[2][v];
}
});
}else{
console.log("取到数据头部:"+n[0]);
}
})
Ce qui précède peut obtenir les bons résultats.
var bodydata = $("body").data();
bodyDatas = new Array();/*使用了个全局变量bodyDatas*/
_.forIn(bodydata,function(value,key){
if(typeof value == "string"){
value = parseLodash(n);
}
if(value[0] == "200"){
var keyarray = key.split('_');
var key0 = keyarray[0];
var key1 = keyarray[1];
var key2 = keyarray[2];
_.forIn(_.keys(value[2]), function(v,k) {
if (!bodyDatas[key0]) {
bodyDatas[key0] = [];
}
if (!bodyDatas[key0][key1]) {
bodyDatas[key0][key1] = [];
}
});
}else{
console.log("取到数据头部:"+n[0]);
}
})
console.log(bodyDatas["mx"]);
Le code ci-dessus utilise un tableau, et il y aura une valeur avec le type par défaut non défini
Bien que j'ai résolu ce problème en remplaçant un objet par un tableau, j'ai toujours une question en tête : pourquoi le type est-il ajouté lors de l'utilisation d'un tableau ? C'est une valeur indéfinie, et cette valeur n'existe pas. Ma boucle n'est en effet exécutée qu'une seule fois, alors peut-être qu'il y a un problème dans la façon dont je déclare le tableau. Y a-t-il une valeur par défaut ? Comment doit-il être déclaré ?