为什么forEach()在此对象循环中不起作用?

时间:2019-02-04 16:47:00

标签: javascript object foreach

为什么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 :(得分:3)

  

箭头功能可以具有“简洁主体”或通常的“块”   身体”。

     

在简洁的正文中,仅指定一个表达式,该表达式成为   隐式返回值。在块体中,必须使用显式   返回声明

参考:-Arrow function body

因为此语法不正确。

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

您需要在此处使用{}

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

答案 1 :(得分:0)

功能主体必须使用括号:

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

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