2017-09-28 5 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

하지만 항목에 : 나는 그렇게 같은 다른 배열의 기능을 시도하고 수익을 준 뷰와 밑줄

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

질문에 코드를 수정 했으므로 이제는 의미가 없습니다. 도움이 되었다면 질문을 되돌리고 대답을 수락 할 수 있습니까? –