请老师检查
来源:2-11 编程练习
慕斯2168053
2021-11-19 16:09:23
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
const obj = {
"0": "xm",
"sex": "male",
length: 2
}
在此补充代码
obj[Symbol.iterator] = () => {
let index = 0;
return {
next() {
let value, done;
if (index < obj.length) {
value = obj[index];
done = false;
} else {
value = undefined;
done = true;
}
index++;
return {
value,
done
}
}
}
}
for (let item of obj) {
console.log(item);
}
</script>
</body>
</html>1回答
好帮手慕久久
2021-11-19
同学你好,打印结果不对:

正确结果如下:

有以下几条原因导致了错误:
1、obj的属性不是“0”、“1”、“2”...:

所以value的值,不能通过value = obj[index]获取。
2、length属性也需要打印出来,因此需要获取的属性的长度=length+1,如下条件就有问题了:

综上,调整如下:

祝学习愉快!