有个问题!

有个问题!

请问for(var p in a)在这里是遍历了a对吧,那为什么不用遍历b呢,既然下面要比较a与b每一个对象的内容那么不应该全部遍历么?

正在回答

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

3回答

同学你好!
for (p in a)中的p表示索引或者是属性名,在这里是表示属性名:

http://img1.sycdn.imooc.com//climg/5dba8042095b9aa301960029.jpg

http://img1.sycdn.imooc.com//climg/5dba804c09761e7701050067.jpg

这个属性名在b对象里也是存在的。for循环中,会向上查找到函数中传递的这个参数b,所以在b中也可以遍历p(age,和score)。

http://img1.sycdn.imooc.com//climg/5dba813c0955641204520196.jpg

http://img1.sycdn.imooc.com//climg/5dba814c094d15a101870152.jpg

因此这样就可以作比较了~

如果帮助到了你,欢迎采纳,祝学习愉快~

好帮手慕码 2019-10-31 14:12:09

同学你好!

  1. 前面同学理解是正确的。

  2. 不是很懂同学问题的意思,参数a代表对象xm,里面有age和score的键值对。遍历参数a,那么这个对象里的内容也是遍历了的。

如果不是这个意思的话,同学可以将问题描述的再清楚一些在问答区进行提问,以便准确的帮助同学分析问题。

如果帮助到了你,欢迎采纳,祝学习愉快~

  • 提问者 蛤小蛤 #1
    for(p in a){ if a[p] !== b[p] 我意思是这里为什么仅仅只遍历了a,就可以让b和a进行比较了,b没有被遍历啊,那么怎么比较呢?为什么这里就if a[p] !== b[p]了呢。
    2019-10-31 14:17:54
提问者 蛤小蛤 2019-10-31 13:45:03

数组那个我知道不用遍历b,因为长度一样了,直接比较索引一样的值是否相同就好,那么对象这里为什么不全部遍历呢?仅仅只遍历了一个a

问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星

相似问题

登录后可查看更多问答,登录/注册

2.组件化网页开发
  • 参与学习           人
  • 提交作业       1121    份
  • 解答问题       14456    个

本阶段在运用JS实现动态网页开发的基础上,带你深入理解企业开发核心思想,完成一个企业级网页的开发,体验前端工程师的成就感。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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