почему forEach () не работает в этом объектном цикле? - PullRequest
0 голосов
/ 04 февраля 2019

Почему forEach не работает для следующего?Я пробовал это несколько раз, и он всегда возвращает «неожиданный токен».

// for loop
for(item in items){
        if (items[item].id===idNum){
            console.log(items[item]);
        }
    }

// the for loop works. 

// forEach()

items.forEach(item=>if(item.id===idNum){console.log(item)})
// this returned error message "unexpected token"

Ответы [ 2 ]

0 голосов
/ 04 февраля 2019

Вы должны использовать скобки для тела функции:

let items = [ {id:1}, {id:2} ];
let idNum = 2;

items.forEach(item => {
  if (item.id === idNum) { console.log(item) }
})
0 голосов
/ 04 февраля 2019

Функции со стрелками могут иметь либо «краткое тело», либо обычное «тело блока».

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

ссылка: - Тело функции стрелки

Поскольку этот синтаксис неправильный.

items.forEach(item=>if(item.id===idNum){console.log(item)})

Вам нужно использовать {} здесь

items.forEach(item=>{
if(item.id===idNum){console.log(item)}
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...