map集合的foreach遍历

map集合的foreach遍历

https://img1.sycdn.imooc.com//climg/6167f8af090fd2f903230120.jpg

key和value要反过来写吗?

正在回答 回答被采纳积分+1

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

3回答
好帮手慕星星 2021-10-15 11:29:58

同学你好,p是变量,如果用点方式,p会直接是属性,不是p变量的值为属性。例如:

https://img1.sycdn.imooc.com//climg/6168f55f09a654f402620111.jpg

https://img1.sycdn.imooc.com//climg/6168f5650982d51701540041.jpg

这不是我们想要的结果,所以需要用[]方式,p变量值会当做属性

https://img1.sycdn.imooc.com//climg/6168f58d09caca4003100134.jpg

https://img1.sycdn.imooc.com//climg/6168f5940940c59c01990025.jpg

所以课程中用了elem.style[p],自己再理解下。

好帮手慕星星 2021-10-14 18:36:05

同学你好,propObj代表的是遍历的每一项数据

https://img1.sycdn.imooc.com//climg/616806eb095fa59506180098.jpg

当遍历一个{}的时候时候,p代表的是属性名

https://img1.sycdn.imooc.com//climg/616807260955d30f04820203.jpg

https://img1.sycdn.imooc.com//climg/61680732099f236c07060318.jpg

那么propObj[p]获取的是属性值

https://img1.sycdn.imooc.com//climg/616807de09cb190c04730236.jpg

https://img1.sycdn.imooc.com//climg/616807ed0901dc7c05850117.jpg

elem.style[p] = propObj[p]; 这行代码的意思是将获取的属性值,赋值给elem元素样式每一个p属性,也就是

elem.style['color']='red' ;elem.style['backgroundColor']='yellow';elem.style['fontSize']='40px' 。

自己再理解下。

  • 提问者 JarvanIV #1

    是方括号这里我没有很理解,为啥要elem.style[p],不可以用点语法么

    2021-10-14 19:35:39
好帮手慕星星 2021-10-14 17:47:16

同学你好,参数位置是固定的。

forEach的处理函数中,第一参数为当前元素value,第二个参数为当前元素索引key。for in遍历中,如果遍历的对象,p代表的是对象属性;如果遍历的数组,p代表的是数组索引。

记住参数代表的意思,不要和其他方法中的key,value位置弄混了。

祝学习愉快!

  • 提问者 JarvanIV #1

    https://img1.sycdn.imooc.com//climg/616800af09e5a50708170560.jpg有点不明白这个写法elem.style[p] = propObj[p];,打印出的p是属性名。不应该是elem.style.p吗?

    2021-10-14 18:05:40
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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