map返回未定义的对象数组?

时间:2017-04-25 04:10:03

标签: javascript reactjs

const newDate = map(items.result, (obj => {
  if (isDateWithinRage(obj.date_from)) {
    return {
      "date": obj.join_date,
      "name": obj.student.name
    }
  }
}))

if语句产生了类似的东西

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

如何修复未定义的部分?我想跳过迭代。

1 个答案:

答案 0 :(得分:3)

假设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是一个数组