过滤具有指定值的数组无法返回新数组

时间:2017-09-28 05:36:36

标签: vue.js underscore.js vuejs2 vue-component

我在尝试过滤后分配新数组时遇到问题。每次我过滤,它返回一个空数组。然而,该语句适用于其他数组,但不适用于我想要过滤的数组。我正在使用Vue和Underscore

// HTML

<el-button @click="searchHashtag('#hr')>Test</el-button>

// JS

data: () {
     return {
           // this is my array. an array of objects
          messages = [{ 
               _id = "1",
               hashtags = [ "hr" ] },

               {_id = "2",
               hashtags = [ "hr", "#acc" ] },

               {_id = "3",
               hashtags = [] }]
       }

methods: {
     // this is suppose to return assign a new array to messages
     // after it filters it's old values
     searchHashtag (searchBy) {
          this.messages = _.filter(this.messages, 
               _.compose(_.partial(_.contains, _, searchBy), 
               _.property('hashtags')))

我在另一个数组中尝试了这个函数,并给出了一个返回:

var messages = [{
    id: 1,
    name: "John",
    hashtag: ["#cool"]
  },

  {
    id: 2,
    name: "Bob",
    hashtag: ["#cool", "#sweet"]
  },

  {
    id: 3,
    name: "Bob",
    hashtag: ["#sweet"]
  }
]

1 个答案:

答案 0 :(得分:0)

您正在搜索 #hr 一词,但消息数组中的任何项目都不包含主题标签数组中的此字词。

它们只包含 hr ,没有

这就是您的过滤数组为空的原因。