var car = {make: "Honda", model:"Civic", color:"Silver"};
for(var prop in car)
console.log(prop);
我得到了汽车所有属性的输出,即:" 使, 模型, 色"
var car = {make: "Honda", model:"Civic", color:"Silver"};
var GetObjectPropertyNames = function(obj) {
if(obj===null)
{
return null;
}
for(var prop in obj)
{
return prop;
}
}
console.log(GetObjectPropertyNames(car));
当我执行此代码时。我只有一辆车的财产。即只是" make"作为输出。 我可能知道我哪里出错了吗? b / w这两个片段有什么区别?
答案 0 :(得分:2)
您可以使用Object.keys()
获取属性名称数组。你不需要自己编写一个函数来完成这个任务。
var car = {make: "Honda", model:"Civic", color:"Silver"};
var props = Object.keys(car); // ["make", "model", "color"]
仅供参考,您的函数只返回一个属性名称,因为您在使用return
找到的第一个属性上使用return prop
,并且一返回就会执行一个函数。
如果您想自己编写,可以将所有属性放入数组中,然后在完成后返回数组(虽然Object.keys()
已经为您执行此操作)。
答案 1 :(得分:0)
这是因为您在找到第一个属性名称后立即X
。一个函数只能返回一次。
也许将属性名称推送到循环中的数组中并返回它。