Javascript 如何使用vuejs在阵列中存储数据

Javascript 如何使用vuejs在阵列中存储数据,javascript,arrays,vue.js,Javascript,Arrays,Vue.js,我需要将来自api的数据存储到变量中。仅包含“true”的数据。我在下面给出了API输出 //api输出数据 { "BNG-JAY-137-003": false, "BNG-JAY-137-004": true, "BNG-JAY-137-005": false } //下面是我的函数,我只需要存储变量中为真的数据。此处“selected_data”是包含API数据的变量 on(){ for(let key

我需要将来自api的数据存储到变量中。仅包含“true”的数据。我在下面给出了API输出

//api输出数据

     {
      "BNG-JAY-137-003": false,
       "BNG-JAY-137-004": true, 
        "BNG-JAY-137-005": false 
       }
//下面是我的函数,我只需要存储变量中为真的数据。此处“selected_data”是包含API数据的变量

    on(){
    for(let key in this.selected_data) {
        if(this.selected_data[key]) {
       //here i need to store data which is true in an array.
       }
      }
     }

有几种方法可以做到这一点。一种是使用
对象。键
过滤器

const selected_data=this.selected_data
常量数组=Object.keys(选定的_数据).filter(key=>选定的_数据[key])
更接近原始代码的方法是将键推到数组上:

const selected_data=this.selected_data
常量数组=[]
for(所选_数据中的常量键){
如果(选定的_数据[键]){
array.push(按键)
}
}

从Vue的角度来看,这可能会作为计算属性实现,并在最后返回相关数组。或者,它可以存储在
数据
属性中,在方法的末尾使用与
this.propertyName=array
等效的东西。

有几种方法可以做到这一点。一种是使用
对象。键
过滤器

const selected_data=this.selected_data
常量数组=Object.keys(选定的_数据).filter(key=>选定的_数据[key])
更接近原始代码的方法是将键推到数组上:

const selected_data=this.selected_data
常量数组=[]
for(所选_数据中的常量键){
如果(选定的_数据[键]){
array.push(按键)
}
}

从Vue的角度来看,这可能会作为计算属性实现,并在最后返回相关数组。或者,它可以存储在
数据
属性中,在方法末尾使用与
this.propertyName=array
等效的内容。

您可以使用计算属性:

computed: {
    valid_selected_data: function() {
        return Object.keys(this.selected_data).reduce((acc, key) => {
            if(this.selected_data[key]) {
                acc[key] = this.selected_data[key];
            }

            return acc;
        }, {});
    }
}
该代码将创建另一个对象,该对象包含与所选数据相同的项,但仅包含真实项

如果您只需要一个具有true键的数组,请尝试以下操作:

computed: {
    valid_selected_data: function() {
        return Object.keys(this.selected_data).filter((key) => this.selected_data[key]);
    }
}

您可以使用计算属性:

computed: {
    valid_selected_data: function() {
        return Object.keys(this.selected_data).reduce((acc, key) => {
            if(this.selected_data[key]) {
                acc[key] = this.selected_data[key];
            }

            return acc;
        }, {});
    }
}
该代码将创建另一个对象,该对象包含与所选数据相同的项,但仅包含真实项

如果您只需要一个具有true键的数组,请尝试以下操作:

computed: {
    valid_selected_data: function() {
        return Object.keys(this.selected_data).filter((key) => this.selected_data[key]);
    }
}