2017-09-28 2 views
0

Je n'arrive pas à essayer d'attribuer un nouveau tableau après le filtrage. Chaque fois que je filtre, il renvoie un tableau vide. La déclaration fonctionne cependant sur d'autres tableaux mais pas sur celui que je veux filtrer. J'utilise Vue et SoulignéLe tableau de filtrage avec la valeur spécifiée ne parvient pas à renvoyer un nouveau tableau

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

J'ai essayé la fonction dans un autre tableau comme si et lui a donné un retour:

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

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

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

Répondre

0

Vous recherchez le terme #hr mais aucun élément dans votre tableau messages contient ce terme dans le tableau hashtags.

Ils comprennent seulement hr, sans le #.

C'est pourquoi votre tableau filtré est vide.

+0

fait l'édition. mon mauvais –

+0

Vous avez corrigé le code dans la question alors maintenant cela n'a pas de sens. Êtes-vous en mesure de revenir sur la question et accepter la réponse si cela a aidé? –