arr.entries()方法得到的value与arr.[key]的区别?

arr.entries()方法得到的value与arr.[key]的区别?

第一种:<script>

        const arr = ["i", "m", "o", "o", "c"]

            //    在此补充代码

        let i = 0;

        for (const [key, value] of arr.entries()) {

            if (key == 2) {

=====>             arr[key] = value.toUpperCase();

                break;

            }

        };

        console.log(arr);

    </script>

  第二种:<script>

        const arr = ["i", "m", "o", "o", "c"]

            //    在此补充代码

        let i = 0;

        for (const [key, value] of arr.entries()) {

            if (key == 2) {

  =====>         value = value.toUpperCase();

                break;

            }

        };

        console.log(arr);

    </script>

arr.[key]不就是value吗?为什么第二种会报错?

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好, 报错的意思是:赋值给常量变量

https://img1.sycdn.imooc.com//climg/632144a809d2151005420034.jpg

value值是每个字符,const定义的常量不可以修改,所以不能直接给value赋值。

而arr[key]是通过索引给数组重新赋值,引用类型改变值。

祝学习愉快!

  • 沉河 提问者 #1

    https://img1.sycdn.imooc.com//climg/6321487409d8717303580220.jpg

    你好老师!如果换成let,是影响了什么地方让o没有变成O啊,,,就是把const换成let以后,value已经可以变了,但是没有变化。



    https://img1.sycdn.imooc.com//climg/6321486009a872b409700499.jpg

    2022-09-14 11:22:54
  • 好帮手慕星星 回复 提问者 沉河 #2

    不仅仅是常量,变量也是一样的。例如:

    https://img1.sycdn.imooc.com//climg/63214c8a09ce506105520146.jpg

    https://img1.sycdn.imooc.com//climg/63214c8f09a6885204950037.jpg

    从数组中拿出一项赋值给i变量,i就是一个基础类型值,改变i的值并不能改变数组中的项值。

    现在的i变量与数组中的第一项已经没有关系,不能联动改变。前面课程中也讲解过区别

    https://img1.sycdn.imooc.com//climg/63214e7d091f237913420347.jpg

    记住这种效果即可。

    2022-09-14 11:48:22
  • 沉河 提问者 回复 好帮手慕星星 #3

    奥奥好的,谢谢老师

    2022-09-14 11:51:20
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师