2017-04-25 72 views
2
const newDate = map(items.result, (obj => { 
    if (isDateWithinRage(obj.date_from)) { 
    return { 
     "date": obj.join_date, 
     "name": obj.student.name 
    } 
    } 
})) 

if语句产生了这样的事情map返回未定义的对象数组?

[Object, Object, Object, Object, Object, undefined, undefined, undefined, undefined, Object, Object, Object] 

如何解决未定义的一部分吗?我想跳过迭代。

+1

我认为你正在寻找过滤https://开头开发商.mozilla.org/EN-US /文档/网络/的JavaScript /参考/ Global_Objects /阵列/过滤器 – Maxwelll

回答

2

假设mapArray.prototype.map的一些变体,map产生从输入数组到输出数组的1:1映射。

当你想从您的输入数组排除值,使用Array.prototype.filter

const newDate = 
    items 
    .result 
    .filter(obj => isDateWithinRange(obj.date_from)) 
    .map(obj => ({ 
     date: obj.join_date, 
     name: obj.student.name 
    })); 

此示例假设items.result是一个Array

相关问题