在Javascript中映射和过滤映射的数组

Jef*_*oes 2 javascript

这是一个非常简单的问题.我想映射并形成给定另一个数组的数组.然后我想删除重复的值.

这就是我做的:

let status = listHotels.map(hotel => {
  return hotel.status
})

const x = status.filter((v, i) => (
  status.indexOf(v) === i
));
Run Code Online (Sandbox Code Playgroud)

有用.但我想要一个不涉及编写两个代码块的解决方案.我试过这个:

let status = listHotels.map(hotel => {
  return hotel.status
}).filter((v, i) => (
  status.indexOf(v) === i
));
Run Code Online (Sandbox Code Playgroud)

但它没有用.它说

无法读取未定义的属性'indexOf'

有谁知道这个解决方法吗?

Kar*_*rim 5

调用.filter方法时仍未定义状态.

将其更改为:

let status = listHotels.map(hotel => {
  return hotel.status
}).filter((v, i, currentStatus) => (
  currentStatus.indexOf(v) === i
));
Run Code Online (Sandbox Code Playgroud)