javascript — фильтровать данные из вложенного массива в vue.js

фильтровать данные из вложенного массива в vue.js

Я работаю над разработкой шаблонов в Vue.js. У меня есть раздел, похожий на faq, и я хочу добавить в него строку поиска, но проблема в том, что мой массив данных представляет собой вложенные данные, поэтому он возвращает все данные без фильтрации.

Дом

 {amp}lt;v-container{amp}gt; {amp}lt;v-card{amp}gt; {amp}lt;div{amp}gt; {amp}lt;v-text-field label="Search" v-model="searchValue"{amp}gt;{amp}lt;/v-text-field{amp}gt; {amp}lt;/div{amp}gt; {amp}lt;/v-card{amp}gt; {amp}lt;/v-container{amp}gt; {amp}lt;div v-for="items of filterfaq" :key="items.category"{amp}gt; {amp}lt;h2{amp}gt;{{ items.category }}{amp}lt;/h2{amp}gt; {amp}lt;v-expansion-panels{amp}gt; {amp}lt;v-expansion-panel v-for="subitems of items.content" :key="subitems.qus"{amp}gt; {amp}lt;v-expansion-panel-header{amp}gt;{{ subitems.qus }} {{subitems.views}}{amp}lt;/v-expansion-panel-header{amp}gt; {amp}lt;v-expansion-panel-content{amp}gt; {{ subitems.ans }} {amp}lt;/v-expansion-panel-content{amp}gt; {amp}lt;/v-expansion-panel{amp}gt; {amp}lt;/v-expansion-panels{amp}gt; {amp}lt;/div{amp}gt; 

скрипт

 import { faq } from '../../data.js'; export default { data: () ={amp}gt; ({ faq, searchValue : '' }), computed:{ filterfaq () { const search = this.searchValue.toLowerCase().trim(); if (!search) return this.faq; return this.faq.filter(item ={amp}gt; { return item.content.filter(item ={amp}gt; { return item.qus.toLowerCase().indexOf(search) {amp}gt; -1 }); }); } } } 

Data.js

 export const faq = [ { id:1, category:'General Questions', content: [ { subid:1, qus: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit?', ans: ' Phasellus a est id mi gravida congue.', views: '225' }, { subid:2, qus: 'Duis porta ante ac dui iaculis, nec interdum ligula semper?', ans: ' Phasellus a est id mi gravida congue.', views: '225' } ] } ] 

Один из них — faq-массив, а другой — это вложенный массив, так как я могу искать ?? Я пытался с приведенным выше кодом, но не предоставить то, что я хочу.

Обновлено: теперь мне нужно отфильтровать данные из следующего массива.

 export const faq = [ { id:1, category:'General Questions', content: [ { subid:1, qus: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit?', ans: ' Phasellus a est id mi gravida congue.', views: '225', items:[{ subqus: 'Lorem ipsum dolor sit amet?' subans: 'Lorem ipsum dolor sit amet.' }] }, { subid:2, qus: 'Duis porta ante ac dui iaculis, nec interdum ligula semper?', ans: ' Phasellus a est id mi gravida congue.', views: '225', items:[{ subqus: 'Lorem ipsum dolor sit amet?' subans: 'Lorem ipsum dolor sit amet.' }] } ] } ] 

Как мне этого добиться?

Понравилась статья? Поделиться с друзьями:
JavaScript & TypeScript
Adblock
detector