{{cartList?.[shopId]?.[item._id]?.count || 0}}不懂
为是什么要这样写{{cartList?.[shopId]?.[item._id]?.count || 0}} ?
这样写{{cartList?.shopId?.item._id?.count || 0}} 为什么不行,这个cartList?.[shopId]打点方括号什么意思?前面课程有教过吗?我忘了在哪个课程里了。
正在回答 回答被采纳积分+1
同学你好,对于你的问题解答如下:
1、先了解下?.语法,具体参考下面的解释:
?.意思是尝试访问对象的属性之前检查对象是否存在。可以参考如下解析:
例如:obj ?. age 可以简单的理解为它的作用与三目运算符类似,即: obj?obj.age : undefined,如果obj对象存在,那么就返回obj的age属性值,否则的话返回undefined。

两者输出的结果一样,如下图所示:

2、然后再来分析老师写的这句代码,{{cartList?.[shopId]?.[item._id]?.count || 0}}这句代码的意思就是先判断cartList对象上的shopId是否存在,如果存在的话,接着判断cartList对象下shopId属性下的item._id属性是否存在,如果存在的话,就返回它下面的count属性值,否则的话,返回0。
3、因为shopId和item._id是变量,所以需要使用方括号来访问对应的属性值。在前面课程中有讲解,可以回顾下课程,加深记忆与理解,https://class.imooc.com/lesson/1634#mid=37354
祝学习愉快~
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星