Javascript 试图找出函数不可用的原因';行不通

Javascript 试图找出函数不可用的原因';行不通,javascript,Javascript,我已经编写了一个过滤函数,它应该过滤对象数组,它确实过滤了对象数组,但是结果变量没有得到过滤后的数组 阵列的示例: hotels: [{ photo: "/some_address/some_photo.png", name: "Hotel Moscow Name", address: "Moscow, some street, 1", amenities: [{ name: 'wi-fi' }, { name: 'bar' }, {

我已经编写了一个过滤函数,它应该过滤对象数组,它确实过滤了对象数组,但是结果变量没有得到过滤后的数组

阵列的示例:

hotels: [{
  photo: "/some_address/some_photo.png",
  name: "Hotel Moscow Name",
  address: "Moscow, some street, 1",
  amenities: [{
      name: 'wi-fi'
    }, {
      name: 'bar'
    }, {
      name: 'pool'
    }, {
      name: 'transfer'
    },
    {
      name: 'bath'
    }, {
      name: 'breakfast'
    }, {
      name: 'spa'
    }
  ],
  price: 3000
},
{
  photo: "/some_address/some_photo.png",
  name: "Hotel  St.Pitersberg Name",
  address: "sSt.Pitersberg, some street, 2",
  amenities: [{
      name: 'wi-fi'
    }, {
      name: 'bar'
    }, {
      name: 'fitness'
    }, {
      name: 'transfer'
    },
    {
      name: 'bath'
    }, {
      name: 'breakfast'
    }, {
      name: 'spa'
    }
  ],
  price: 4000
},
}]

settedList.filter(…)
返回一些数组,该数组始终为空。如果要检查数组是否为空,请尝试使用
return settedList.filter(…).length
filter()
回调不应包含
return….filter(…)。这不会从外部阵列中移除任何东西。弗拉德,格拉佐夫,非常感谢!这真的很有效!尽管只检查settedList数组中是否有一个包含在便利设施中,而不是每个人(
changeFilterValue: function(choosenAmenity) {
    this.changeFiltersList(choosenAmenity);
    let settedList = this.settedFilters;

    this.filteredData = this.hotels.filter(function(hotel) { //массив hotels
      let amenityArray = [];
      hotel.amenities.forEach(function(amenity) {
        amenityArray.push(amenity.name);
      })
      return settedList.filter(function(elem) {
        console.log(settedList, amenityArray);
        console.log(amenityArray.includes(elem));
        return amenityArray.includes(elem);
      });
    })
    console.log(this.filteredData);