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. javascript - 这种上传图片预览怎么做?2. python - 如何将文本文件的CR换行符换成LF换行符?3. javascript - input输入框触发change事件后,外部元素会被选中4. js怎样实现在类似qq的联系人分组中进行搜索后,又可恢复原分组的界面?5. python - scrapy-redis爬虫运行是连接redis数据库连接错误6. python3.x - mongodb 显示不出中文,都是方块,该如何解决?7. linux - 【已解决】fabric部署的Python项目Apache启动之后提示403Forbidden该如何解决?8. html5 - H5 如何进行缓存页面 资源包 索引?9. 怎样用python给mp3添加封面?10. python相关问题求解决,有偿