如何在 JavaScript 对象中获取这些密钥

How to get these key in JavaScript object

本文关键字:获取 密钥 对象 JavaScript      更新时间:2023-09-26

我有以下对象:

var input = {
        "document": {
            "people":[
                {"name":"Harry Potter","age":"18","gender":"Male"},
                {"name":"hermione granger","age":"18","gender":"Female"}
            ]
        }
    }

我喜欢这个:

_.each(result.document[people], function(item){
    console.log(item); 
    //What should I do here ? or I come wrong way ?
});

在项目中我得到:

{name : 'Harry Potter', age : '18':, gender:'Male'}
{name : 'hermione grange', age : '18':, gender:'Female'}

我想得到[姓名,年龄,性别]。我该怎么办?

如果你认为你的值是动态的,请先使用一个函数

var input = {
    "document": {
        "people":[
            {"name":"Harry Potter","age":"18","gender":"Male"},
            {"name":"hermione granger","age":"18","gender":"Female"}
        ]
    }
}
var func = function (one, two) {
  var array = input[one][two];
  var arr =[];
  for (var i=0; i<array.length; i++){
     arr = Object.keys(array[0]);
  }
 return arr;       
}
func("document", "people"); // will return ["name", "age", "gender"]

试试这个

var s = {name: "raul", age: "22", gender: "Male"}
   var keys = [];
   for(var k in s) keys.push(k);

这里的键数组将返回你的键["name", "age", "gender"]

像这样的东西?

_.each(result.document[people], function(item) {
  _.each(item, function(item, key) {
    console.log(key);
 });
});

对于对象,_.each将第二个 key 参数发送到回调函数。

好的,现在我知道你实际上想要对象的名称,而不是值。所以我为你添加了另一个代码。很抱歉,我现在没有时间解释,但我编写的这段代码可以满足您的需求。

这显示了对象的名称:

root_obj=input.document.people[0];
tmp=[];
for(val in root_obj )
{
  tmp.push(val);
}
console.log(tmp);

这显示了对象的值:

root_obj=input.document.people;
for(obj in root_obj )
{
  tmp=[];
  for(val in root_obj[obj] )
  {
    tmp.push(root_obj[obj][val]);
  }
  console.log(tmp);
}

你去吧。最终答案。 (编辑为返回键而不是每个注释的值)

_.each(result.document[people], function(item){
    //get keys as numerical array
    var num_arr = [];
    for (var key in item) {
        num_arr.push( key );
    }
    console.log(num_arr); // should return ['name', 'age', 'gender']
});