2017-09-28 8 views
0

フィルタリング後に新しい配列を割り当てようとしています。フィルタリングするたびに空の配列が返されます。ステートメントは、他の配列では動作しますが、フィルタ処理したい配列では動作しません。あなたは用語#hrを探している指定された値を持つ配列をフィルタリングすると、新しい配列が返されません。

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

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

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

答えて

0

が、ノーアイテムで:私はそうのような別の配列内の関数を試してみましたが、それはリターンを与えたVUEとアンダースコア

// 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'))) 

を使用していますメッセージ配列には、この用語がハッシュタグ配列に含まれています。

を含まず、時間のみを含みます。

これは、フィルタリングされた配列が空である理由です。

+0

を編集しました。私の悪い –

+0

あなたは問題のコードを修正したので、今は意味がありません。あなたが質問を元に戻し、それが助けになったら答えを受け入れることができますか? –

関連する問題