我在尝试过滤后分配新数组时遇到问题。每次我过滤,它返回一个空数组。然而,该语句适用于其他数组,但不适用于我想要过滤的数组。我正在使用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"]
}
]
答案 0 :(得分:0)
您正在搜索 #hr 一词,但消息数组中的任何项目都不包含主题标签数组中的此字词。
它们只包含 hr ,没有#。
这就是您的过滤数组为空的原因。