为什么有时 map 会返回含 undefined 的数组?
var numbers = [1, 2, 3, 4];
var filteredNumbers = numbers.map(function(num, index) {
if(index < 3) {
return num;
}
});
console.log(filteredNumbers ) // [1, 2, 3, undefined]
分析原因:
因为 map 方法总是需要有返回值,如果你没有给一个明确的返回值,那么返回值将是 undefined。
换句话说,你不能用 map 生成一个不同长度的新数组。(map 的原数组是多少长度,返回的数组就有多少长度)
见下图,一一对应的关系: