请老师检查

来源: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

同学你好,打印结果不对:

https://img.mukewang.com/climg/6197649a092fd91803660122.jpg

正确结果如下:

https://img.mukewang.com/climg/619764a409c97e5304470141.jpg

有以下几条原因导致了错误:

1、obj的属性不是“0”、“1”、“2”...:

https://img.mukewang.com/climg/619764e609ef567504390148.jpg

所以value的值,不能通过value = obj[index]获取。

2、length属性也需要打印出来,因此需要获取的属性的长度=length+1,如下条件就有问题了:

https://img.mukewang.com/climg/6197653209bd83c505240121.jpg

综上,调整如下:

https://img.mukewang.com/climg/61976595091cedf908980853.jpg

祝学习愉快!

0

0 学习 · 17877 问题

查看课程

相似问题