Javascript if 条件上的箭头函数意外标记

Javascript arrow function unexpected token on if condition

有人能告诉我这个箭头函数有什么问题吗?它抛出一个错误

unexpected token on begin of if condition

selected_devices
  .map( device => if( device.device_id === device_id ) device.source = 'included' )

你好像忘了加这样的括号

selected_devices.map((device) => {
   if (device.device_id === device_id) device.source = 
   'included'
   return device
})

但你也可以像这样使用三元运算符

selected_devices.map((device) =>
   device.device_id === device_id ? { ...device, device.source: 
   'included' } : device,
)

当你有一个 if 或其他不是单个语句的东西时你需要 {} - 如果你想要 forEach 也不要使用 map 因为 map 创建一个不必要的数组然后你扔掉

selected_devices
  .forEach(device => device.source = device.device_id === device_id  ? 'included' : device.source)

或者也许

selected_devices
  .filter( device => device.device_id === device_id)
  .forEach(device => device.source = 'included')