老师,是这样写吗?

来源:2-5 编程练习

廖可爱bongbong

2021-06-24 10:28:29

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8" />

    <title></title>

</head>

<body>

    <script>

        //在此添加代码

        const s = new Set;

        s.add(1).add(2).add(3);

        console.log(s);  //Set(3) {1, 2, 3}


        s.delete(2);

        console.log(s);     //Set(2) {1, 3}

        

        console.log(s.size); //2


        s.forEach((value,key,set) => {

            console.log(value,key,set)

        },document);


    </script>

</body>

</html>

相关截图:

http://img.mukewang.com/climg/60d3ed8b095b215b05540657.jpg

老师,我想问一下,这个遍历的时候是一定要(value,key,set)这样写吗?这个document的位置是不是还可以换成的?如果可以,那么换成什么呢?


写回答

1回答

好帮手慕久久

2021-06-24

同学你好,代码正确,问题解答如下:

1、遍历时,forEach方法中的参数名可以自定义,不一定非得写成value、key、set(名字可以换),但是三个变量的顺序是固定的:

http://img.mukewang.com/climg/60d3f62009f0ea8606330154.jpg

http://img.mukewang.com/climg/60dacd6d0947187208590244.jpg

要按照顺序写自定义的参数。

2、如果需要改变forEach中的this指向,则要设置第二个参数:

http://img.mukewang.com/climg/60dacbb509e7d2ac08050159.jpg

我们这里不需要使用this,因此该参数可以去掉:

http://img.mukewang.com/climg/60daccea0996d2e106780178.jpg

第二个参数,需要根据具体情况来设置(document可以换成其他的)。假设当前项目中,需要在forEach方法中使用对象obj中的属性值,那么就可以通过将this指向obj来实现,例如:

http://img.mukewang.com/climg/60dacc6d0957a8da09780313.jpg

http://img.mukewang.com/climg/60d3f84809343f5b03760157.jpg

祝学习愉快!

0

0 学习 · 15276 问题

查看课程