如何在映射函数中获取对象的键名对象

时间:2017-11-10 13:34:13

标签: javascript ecmascript-6

另一个Object内部和Array内部的一个对象。数据结构是

{
"_id" : "BXPqcoCYSXPQNkq9S",
"client_id" : "REzch3X67Efm2bCri",

"locations" : [ 
    "kochi", 
    "trivandrum"
],
"tags" : {
    "status" : [ 
                        "Active", 
                        "Paused"
    ],
   "category" : [ 
                        "Display", 
                        "Search"
    ]




 }
}

我的问题是如何让输出 状态 类别

我是Alredy用于查找活动和暂停方法

profile.map((data)=>(

  console.log(data.tags['status']) //Active 
                                  //Paused
  ))

如何获得没有名称的值Specifeid 状态

2 个答案:

答案 0 :(得分:2)

您可以使用Object.keys()

  

Object.keys()方法返回给定对象自己的可枚举属性的数组,其顺序与for ... in循环提供的顺序相同(不同之处在于for-in循环枚举了原型链也是如此。

获得密钥后,可以使用for循环迭代它们。

const obj = {"_id":"BXPqcoCYSXPQNkq9S","client_id":"REzch3X67Efm2bCri","locations":["kochi","trivandrum"],"tags":{"status":["Active","Paused"],"category":["Display","Search"]}}

var result = Object.keys(obj.tags)
console.log('Keys: ', result);

Object.keys(obj.tags).forEach(k => console.log('Values for key', k, ':', obj.tags[k]));
.as-console-wrapper { max-height: 100% !important; top: 0; }

答案 1 :(得分:0)

你可以在javascript

中的任何对象内循环键

检查以下代码:

 profile.map((data)=>(
  var tags = data.tags;
  for(tag in tags)
  {
      if(tags.hasOwnProperty(tag))
      {
          console.log(tag);//tag
          console.log(tags[tag]);//inner values
      }
  }
));

提示 hasOwnProperty用于确保密钥实际上归对象所有,而不是prototype