javascript - 聲明數組添加值會生成類型為undefine的值
問題描述
JS:用對象可以取得成功的值,用數組,就會出現有類型為undefined的值
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]); }})
以上可以獲取到正確的結果。
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']);
上面這段代碼是用的數組,會有默認類型為undefine的值雖然我用對象換數組的方式解決了這個問題,但是心里始終存在疑問:為什么使用數組時,會添加了類型為undefine的值,這個值又不存在。我這個循環確實只執行了一次,那么可能是我的數組聲明方式有問題,里面有個默認的值?應該如何聲明?
問題解答
回答1:可以參考這個問題/q/10...
相關文章:
1. angular.js - 輸入郵箱地址之后, 如何使其自動在末尾添加分號?2. 如何解決docker宿主機無法訪問容器中的服務?3. javascript - 如何使用nodejs 將.html 文件轉化成canvas4. javascript - Web微信聊天輸入框解決方案5. angular.js - $stateChangeSuccess事件在狀態跳轉的時候不執行?6. javascript - 后臺管理系統左側折疊導航欄數據較多,怎么樣直接通過搜索去定位到具體某一個菜單項位置,并展開當前菜單7. python - Scrapy存在內存泄漏的問題。8. 如何用筆記本上的apache做微信開發的服務器9. java如何生成token?10. CSS3 畫如下圖形
