.find в .map () возвращает неопределенное значение - JavaScript ES6 - PullRequest
0 голосов
/ 18 мая 2018
return valuesArray.map((objValue) => {
         Dataset.find(dataObj => dataObj.value === objValue)
});

возвращает неопределенное значение.Однако, если я использую forEach и помещаю значения в новый массив, он работает.

Ответы [ 2 ]

0 голосов
/ 18 мая 2018

Вы также можете проверить с помощью filter, чтобы проверить undefined.

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

Так что он также не вернет undefined из valuesArray.

0 голосов
/ 18 мая 2018

Вам не хватает возвращаемого значения.

В анонимных функциях, если вы заключаете функцию в фигурные скобки, вы должны явно возвращать значение.

  • () => 1: возвращает 1
  • () => { 1 }: возвращает неопределенное
  • () => ({}): возвращает {}

Чтобы ответить на ваш вопрос, вот два метода, которые будут работать:

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

или

return valuesArray.map((objValue) => Dataset.find(dataObj => dataObj.value === objValue));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...