计算属性中的Vue JS if / else语句

时间:2018-09-25 19:33:01

标签: javascript vue.js vuejs2 nuxt.js

我正在尝试在Vue JS的计算属性内执行if / else语句以进行搜​​索,这是我所拥有的并且它不起作用,我该如何使其适应工作?

computed: {
    filteredProperties: function(){
      return this.properties.filter((property) => {
        return property.address.match(this.searchAddress) &&

        if (this.searchType.length > 1) {
          this.searchType.some(function(val){
            return property.type.match(val)
          }) &&
        } else {
          property.type.match(this.searchType) &&
        }

        property.bedrooms.match(this.searchBedrooms) &&
        property.county.match(this.searchCounty)
      });
    }
  }

1 个答案:

答案 0 :(得分:0)

您的语法错误,不能在表达式中间使用if语句。这会起作用:

computed: {
  filteredProperties: function(){
    return this.properties.filter((property) => {

    let searchTypeMatch = this.searchType.length > 1
      ? this.searchType.some(function(val){
        return property.type.match(val)
      })
      : property.type.match(this.searchType)

    return property.address.match(this.searchAddress) &&
      searchTypeMatch &&
      property.bedrooms.match(this.searchBedrooms) &&
      property.county.match(this.searchCounty)
    });
  }
}