老师你好:为什么遍历。只显示一项。

来源:5-4 编程练习

watchdog

2020-07-30 10:18:10

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8" />

<title></title>

</head>

<body>

<script type="text/javascript">

function students(){

var stuInfo={};

function setStu(name,age,sex){

stuInfo.name = name

stuInfo.age = age

stuInfo.sex = sex

};

function getStu(){

for(var i in stuInfo){return console.log(i+':'+stuInfo[i])}

};

this.set = function(name , age , sex){

return setStu(name , age , sex)

}

this.get = function(){

return getStu()

}

}

var student = new students();

student.set('小明',18,'男');

student.get();

</script>

</body>

</html>


写回答

2回答

好帮手慕星星

2020-07-30

同学你好,首先需要了解return除了有返回的作用,还有阻断代码执行的作用,所以在for循环使用return只会得到一个结果。如果想要在控制台中有换行效果,返回的字符串中可以拼接上\n

http://img.mukewang.com/climg/5f225fdd0998bdee06260226.jpghttp://img.mukewang.com/climg/5f225fe30965337e01760063.jpg

如果想要在页面中有换行效果,可以拼接上<br>换行标签

http://img.mukewang.com/climg/5f226034094f8e2506050233.jpg

http://img.mukewang.com/climg/5f22603a09f16e9d01720106.jpg

自己再测试下,祝学习愉快!

0

好帮手慕星星

2020-07-30

同学你好,for循环中用了return,所以循环一项就退出了,也就输出一项。建议定义变量,将循环的内容拼接上,最后返回(在循环外)。参考

http://img.mukewang.com/climg/5f2232f5091b570c06790268.jpg

http://img.mukewang.com/climg/5f223305095b564d03820077.jpg

优化:这里可以不遍历,直接输出对象

http://img.mukewang.com/climg/5f223331098c481104920279.jpg

自己再测试下,祝学习愉快!

0
hatchdog
h 老师你好,直接输出结果我会的,我是想做成那种一项一行的效果。类似于这样出来效果,您看有什么法子吗 var item = { a:'A', b:'B', c:'C' } for(var i in item){ console.log(i+':'+item[i]) }
h020-07-30
共1条回复

0 学习 · 14456 问题

查看课程