我有以下对象:
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'}
我想得到[姓名,年龄,性别]。我该怎么办?
答案 0 :(得分:1)
如果您认为您的值是动态的,请首先使用函数
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"]
答案 1 :(得分:1)
试试这个
var s = {name: "raul", age: "22", gender: "Male"}
var keys = [];
for(var k in s) keys.push(k);
此处,键数组将返回您的键["name", "age", "gender"]
答案 2 :(得分:0)
这样的东西?
_.each(result.document[people], function(item) {
_.each(item, function(item, key) {
console.log(key);
});
});
在对象的情况下, _.each
将第二个key
参数发送给回调函数。
答案 3 :(得分:0)
你去..最后的答案。 (根据评论编辑返回键而不是值)
_.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']
});
答案 4 :(得分:0)
好的,现在我知道你真的想要对象的名字,而不是价值。所以我为你添加了另一个代码。 对不起,我现在没有时间解释,但我写的这段代码确实是你需要的伎俩。
这显示了对象的名称:
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);
}