如何迭代数据部分中的所有对象?

时间:2018-08-10 13:40:25

标签: vue.js

我的数据如下:

data: 
  {
   main_level:
   {  
    user_input_1 : 
    {
     isFilled : false,
     val_1 : null,
     val_2 :null,
     val_3 : null,
    },
    user_input_2 : 
    {
     isFilled : false,
     val_1 : null,
     val_2 :null,
     val_3 : null,
    }
   }
}

我想创建将对其进行迭代的方法,并打印user_input_1user_input_2对象。怎么做?我尝试过:

methods: {
  myclick: function () {
   for (el in Object.values(this.main_level))
   {
    console.log(el)
   }

  }
}

2 个答案:

答案 0 :(得分:0)

您需要Object.keys

for (el in Object.keys(this.main_level))

如果同时需要键和值,则可以使用Object.entries

for (el in Object.entries(this.main_level))

var data =  {
   main_level:
   {  
    user_input_1 : 
    {
     isFilled : false,
     val_1 : null,
     val_2 :null,
     val_3 : null,
    },
    user_input_2 : 
    {
     isFilled : false,
     val_1 : null,
     val_2 :null,
     val_3 : null,
    }
   }
}

console.log(Object.keys(data.main_level))

答案 1 :(得分:0)

您的代码几乎是正确的,只需将for循环从 in 更改为 of

/usr/local/bin/el in Object.values(this.main_level)

这是一个有效的示例:

el of Object.values(this.main_level)

https://jsfiddle.net/j0pd1q2z/