JS: Verwenden Sie Objekte, um erfolgreiche Werte zu erhalten, verwenden Sie Arrays, und es wird Werte vom Typ undefiniert geben
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]);
}
})
Das oben Genannte kann zu den richtigen Ergebnissen führen.
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"]);
Der obige Code verwendet ein Array und es wird einen Wert mit dem Standardtyp undefiniert geben
Obwohl ich dieses Problem gelöst habe, indem ich ein Objekt durch ein Array ersetzt habe, habe ich immer noch eine Frage im Kopf: Warum wird der Typ hinzugefügt? bei Verwendung eines Arrays? Es handelt sich um einen undefinierten Wert, und dieser Wert existiert nicht. Meine Schleife wird tatsächlich nur einmal ausgeführt, daher stimmt möglicherweise etwas mit der Art und Weise, wie ich das Array deklariere. Gibt es einen Standardwert? Wie soll es deklariert werden?
可以参考这个问题
/q/10...