js如何遍历对象属性和值

时间:2022-08-25 13:32:45
<script>  
var myDog = {
  "name": "Happy Coder",
  "legs": 4,
  "tails": 1,
  "friends": ["Free Code Camp Campers"]
};

for ( i in myDog)
{
alert(myDog[i])
}
</script>

这样可以遍历对象属性的值,那么请问要如何才能遍历对象属性的名称呢?就是name legs 这些,
还有又怎样同时遍历属性和值呢

9 个解决方案

#1


其实你自己就已经会了呀
<script>  
var myDog = {
  "name": "Happy Coder",
  "legs": 4,
  "tails": 1,
  "friends": ["Free Code Camp Campers"]
};

for ( i in myDog)
{
alert(i);//属性名称
alert(myDog[i]) ;//属性值
}
</script>
//最好是console.log();//打印在控制台比较好.

#2


也可以使用 Object.keys();
var myDog = {
  "name": "Happy Coder",
  "legs": 4,
  "tails": 1,
  "friends": ["Free Code Camp Campers"]
};
console.log(Object.keys(myDog));//会把所有属性名作为一个数组集合输出

#3


for ( i in myDog) 本来就是在遍历对象属性的名称啊, i 就是属性的名称啊。只有通过属性的名称才能取到属性的值 myDog[i]

#4


引用 3 楼 jslang 的回复:
for ( i in myDog) 本来就是在遍历对象属性的名称啊, i 就是属性的名称啊。只有通过属性的名称才能取到属性的值 myDog[i]
请问如果我想只去第二个的属性名应该怎么做呢

#5


引用 1 楼 qq_29594393 的回复:
其实你自己就已经会了呀
<script>  
var myDog = {
  "name": "Happy Coder",
  "legs": 4,
  "tails": 1,
  "friends": ["Free Code Camp Campers"]
};

for ( i in myDog)
{
alert(i);//属性名称
alert(myDog[i]) ;//属性值
}
</script>
//最好是console.log();//打印在控制台比较好.
请问如果我想只去第二个的属性名应该怎么做呢

#6


引用 4 楼 qingwadaxia_1 的回复:
Quote: 引用 3 楼 jslang 的回复:

for ( i in myDog) 本来就是在遍历对象属性的名称啊, i 就是属性的名称啊。只有通过属性的名称才能取到属性的值 myDog[i]
请问如果我想只去第二个的属性名应该怎么做呢


var s = 0;
for ( i in myDog)
{
if (++s == 2) break;
}
alert(i)


或者
Object.keys(myDog)[1]

#7


本帖最后由 showbo 于 2017-09-19 17:53:45 编辑
引用 5 楼 qingwadaxia_1 的回复:
Quote: 引用 1 楼 qq_29594393 的回复:

其实你自己就已经会了呀
<script>  
var myDog = {
  "name": "Happy Coder",
  "legs": 4,
  "tails": 1,
  "friends": ["Free Code Camp Campers"]
};

for ( i in myDog)
{
alert(i);//属性名称
alert(myDog[i]) ;//属性值
}
</script>
//最好是console.log();//打印在控制台比较好.
请问如果我想只去第二个的属性名应该怎么做呢


你要取哪个属性不直接myDog.legs,myDog .name这样取就行了



Web开发学习资料推荐
javascript运行机制浅析
Web前端开发教程

#8


引用 7 楼 showbo 的回复:
Quote: 引用 5 楼 qingwadaxia_1 的回复:

Quote: 引用 1 楼 qq_29594393 的回复:

其实你自己就已经会了呀
<script>  
var myDog = {
  "name": "Happy Coder",
  "legs": 4,
  "tails": 1,
  "friends": ["Free Code Camp Campers"]
};

for ( i in myDog)
{
alert(i);//属性名称
alert(myDog[i]) ;//属性值
}
</script>
//最好是console.log();//打印在控制台比较好.
请问如果我想只去第二个的属性名应该怎么做呢


你要取哪个属性不直接myDog.legs,myDog .name这样取就行了



Web开发学习资料推荐
javascript运行机制浅析
Web前端开发教程
你好,我是想获取第一个属性名 ,不是直接拿来用的那种,不会用到这个吗?

#9


不知道json的结构,怎么显示呢,遍历出来没意义啊。。你要获取第一个出现的,自己用数字判断了
var i=0;
for(var attr in myDog){
alert(‘第’+i+'个属性'+attr+'='+myDog[attr])
i++;
}

#1


其实你自己就已经会了呀
<script>  
var myDog = {
  "name": "Happy Coder",
  "legs": 4,
  "tails": 1,
  "friends": ["Free Code Camp Campers"]
};

for ( i in myDog)
{
alert(i);//属性名称
alert(myDog[i]) ;//属性值
}
</script>
//最好是console.log();//打印在控制台比较好.

#2


也可以使用 Object.keys();
var myDog = {
  "name": "Happy Coder",
  "legs": 4,
  "tails": 1,
  "friends": ["Free Code Camp Campers"]
};
console.log(Object.keys(myDog));//会把所有属性名作为一个数组集合输出

#3


for ( i in myDog) 本来就是在遍历对象属性的名称啊, i 就是属性的名称啊。只有通过属性的名称才能取到属性的值 myDog[i]

#4


引用 3 楼 jslang 的回复:
for ( i in myDog) 本来就是在遍历对象属性的名称啊, i 就是属性的名称啊。只有通过属性的名称才能取到属性的值 myDog[i]
请问如果我想只去第二个的属性名应该怎么做呢

#5


引用 1 楼 qq_29594393 的回复:
其实你自己就已经会了呀
<script>  
var myDog = {
  "name": "Happy Coder",
  "legs": 4,
  "tails": 1,
  "friends": ["Free Code Camp Campers"]
};

for ( i in myDog)
{
alert(i);//属性名称
alert(myDog[i]) ;//属性值
}
</script>
//最好是console.log();//打印在控制台比较好.
请问如果我想只去第二个的属性名应该怎么做呢

#6


引用 4 楼 qingwadaxia_1 的回复:
Quote: 引用 3 楼 jslang 的回复:

for ( i in myDog) 本来就是在遍历对象属性的名称啊, i 就是属性的名称啊。只有通过属性的名称才能取到属性的值 myDog[i]
请问如果我想只去第二个的属性名应该怎么做呢


var s = 0;
for ( i in myDog)
{
if (++s == 2) break;
}
alert(i)


或者
Object.keys(myDog)[1]

#7


本帖最后由 showbo 于 2017-09-19 17:53:45 编辑
引用 5 楼 qingwadaxia_1 的回复:
Quote: 引用 1 楼 qq_29594393 的回复:

其实你自己就已经会了呀
<script>  
var myDog = {
  "name": "Happy Coder",
  "legs": 4,
  "tails": 1,
  "friends": ["Free Code Camp Campers"]
};

for ( i in myDog)
{
alert(i);//属性名称
alert(myDog[i]) ;//属性值
}
</script>
//最好是console.log();//打印在控制台比较好.
请问如果我想只去第二个的属性名应该怎么做呢


你要取哪个属性不直接myDog.legs,myDog .name这样取就行了



Web开发学习资料推荐
javascript运行机制浅析
Web前端开发教程

#8


引用 7 楼 showbo 的回复:
Quote: 引用 5 楼 qingwadaxia_1 的回复:

Quote: 引用 1 楼 qq_29594393 的回复:

其实你自己就已经会了呀
<script>  
var myDog = {
  "name": "Happy Coder",
  "legs": 4,
  "tails": 1,
  "friends": ["Free Code Camp Campers"]
};

for ( i in myDog)
{
alert(i);//属性名称
alert(myDog[i]) ;//属性值
}
</script>
//最好是console.log();//打印在控制台比较好.
请问如果我想只去第二个的属性名应该怎么做呢


你要取哪个属性不直接myDog.legs,myDog .name这样取就行了



Web开发学习资料推荐
javascript运行机制浅析
Web前端开发教程
你好,我是想获取第一个属性名 ,不是直接拿来用的那种,不会用到这个吗?

#9


不知道json的结构,怎么显示呢,遍历出来没意义啊。。你要获取第一个出现的,自己用数字判断了
var i=0;
for(var attr in myDog){
alert(‘第’+i+'个属性'+attr+'='+myDog[attr])
i++;
}