.find .map()返回undefined - JavaScript ES6

时间:2018-05-18 01:44:41

标签: javascript ecmascript-6 array.prototype.map

return valuesArray.map((objValue) => {
         Dataset.find(dataObj => dataObj.value === objValue)
});

它返回undefined。但是,如果我使用forEach并将值推送到新数组中,它就可以工作。

2 个答案:

答案 0 :(得分:4)

您还可以查看filter以查看undefined

return valuesArray.map((objValue) => {
        return Dataset.find(dataObj => dataObj.value === objValue)
}).filter(y => y != undefined);

因此它也不会从undefined返回valuesArray

答案 1 :(得分:1)

您错过了返回值。

使用匿名函数,如果用大括号括起函数,则必须显式返回一个值。

  • () => 1:返回1
  • () => { 1 }:返回undefined
  • () => ({}):返回{}

要回答您的问题,以下是两种可行的方法:

return valuesArray.map((objValue) => {
         return Dataset.find(dataObj => dataObj.value === objValue)
});

return valuesArray.map((objValue) => Dataset.find(dataObj => dataObj.value === objValue));