возвращаясь из forEach javascript [дубликата]

1

У меня есть следующий код:

options.forEach((option) => {
  return(option.get('template_name'))
})

где опции содержат список из 2-х карт

Я ожидаю, что это вернет имя шаблона, но вместо этого я получу 2. Почему это? Как я могу вернуться из функции forEach в javascript?

  • 0
    вы можете поделиться опциями объекта?
  • 0
    Можете ли вы уточнить, что вы ожидаете вернуть? Одно имя шаблона или список имен шаблонов из каждой «опции» в массиве? Если первое, ответ Jonas w будет достаточным, если второе использует .map() .
Теги:
ecmascript-6

2 ответа

3
Лучший ответ

forEach не возвращается. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/forEach#Return_value

Вместо этого используйте map. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/map#Return_value

Кроме того, для использования параметров map должен быть массив.

Проверьте этот пример.

var options = Array.from(document.getElementById('selections').options),
    newOptions = options.map(function(item){
        return item.value
    });

console.log(newOptions);

document.getElementById('results').insertAdjacentHTML('afterbegin', newOptions.reduce((a,b) => a.concat('${b} '), ' '));
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>returning from forEach javascript</title>
</head>
<body>

    <select id="selections">
  <option value="volvo">Volvo</option>
  <option value="saab">Saab</option>
  <option value="opel">Opel</option>
  <option value="audi">Audi</option>
</select>
    
    <div id="results"></div>
    
</body>
</html>
1

То, что хорошо подходит для старого золота для цикла:

 for(var option of options){
    return option.get("template_name");
 }

Что равно:

 return options[0].get("template_name");

Или получить все имена:

 const tnames = options.map( option => option.get("template_name") );
  • 0
    Так почему же цикл в первую очередь?
  • 0
    @ Баао Бьюсь об заклад, оп опущен какой-то, если ...
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню