map返回的数组含有undefined

388 阅读1分钟

先说解决方案,用filter配合map过滤掉undefined,或者直接只使用filter

以前处理数组的时候习惯一直用forEach,虽然知道但是也没想过使用es6的那些方法,这几天新入职了一家公司(哎还是外包 6月份上海找工作有点难 钱花干净了没办法)认识了一个前端哥们儿,他告诉我说新的技术要去用,不能总是用老的 ,并且看到项目中的垃圾写法不要和他一样,要用自己的方式去写,这样才有提升,我决定有道理 所以开始首先从,map开始,

以前只是知道map是返回处理后结果的数组 

map(function(item,index,arr) {
return xxxxxx
})

今天在使用的时候发现返回的数组里面居然几个undefined,例如 ['a','b',undefined,'d'],出问题了肯定首先百度  

因为map方法不能生成一个于原数组不同长度的新数组,并且map方法每一个item 总是要有返回值的,如果没有给它一个明确的返回值,那么就会返回一个undefined,