vue.js - 通过 vue 中的计算属性过滤数据

标签 vue.js vuejs3

我尝试在对象的计算属性中添加过滤器。并期待对象的列表。

我已正确过滤数据,但无法从计算属性创建对象数组。

如果您能在这方面帮助我,我将不胜感激。

<div id="app">
  <div v-if="activeItems && activeItems.length > 0">
  {{ activeItems }}
      <ul>
        <li v-for="item in activeItems" :key="item.id">
          {{item.name}}
        </li>
      </ul>
  </div>
</div>

new Vue({
    el: '#app',
  data() {
    return {
        list: {
      "john" : true,
      "jane" : true,
      "lucy" : false
      },
      
    };
  },
  computed: {
    activeItems() {  
    return Object.keys(this.list)
             .filter(key => this.list[key] === true)
    /** expected 
      return `this.list` as an Array of object and filter by if active is true
          Expected output
          [
            {name: 'John', active: true},
            {name: 'Jane', active: true}
          ]
    **/
    
             
    }
  },
  mounted(){
    console.log(this.list);
  }
});

您可以在此链接上提供帮助https://jsfiddle.net/jakhodeM/we8t572z/6/

谢谢

最佳答案

return Object.keys(this.list)
        .filter(key => this.list[key] === true)
        .map(x => { return {'name': x, 'active': this.list[x]} });

https://jsfiddle.net/fowz746b/

关于vue.js - 通过 vue 中的计算属性过滤数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70620167/

相关文章:

vuejs3 - 在 vue devtools 启动之前,Vue3 Pinia 商店不会加载

javascript - 在 Vue 中删除一个对象,从子对象发射到父对象,再到父对象

javascript - 如何避免在 axios.get 中使用 Web 上下文

javascript - vue-cli 从组件构建一个库并导入它

javascript - 如何遍历 Vue 组件的子组件

vuejs3 - 无法在 Vue3 中使用 Vuelidate 验证电子邮件

vue.js - 无法循环遍历 Vue 3 Reactive Array Prop (代理)

javascript - 使用 vue JS ListView 搜索过滤器

javascript - 有没有更好的方法来处理 laravel 和 vue js 的 axios 错误

vue.js - 如何修复 Vue 3 中的 "Error: Unknown option: devServer"