请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

11-5中有关productList是思考

课程11-5中,在Cart.vue中有这么一段代码
图片描述
cartList[shopId]应该拿到的是一堆对象,但不是数组,但是后面的代码“ || []”却会把productList它变成数组,数据异构这是第1个看不懂的地方,第2个看不懂的地方是之前在javaScript中如果遍历对象比如【let i in productList】,那取值的写法是productList[i],不能写成i._id,但在Cart.vue的v-for循环中,写成【item in productList】,却可以用item._id,这是为什么呢?

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

1回答

Dell 2022-08-27 17:31:38

1, cartList[shopId] 里面应该存的都是一个个数组,如果没有内容,给一个空数据,是这么个逻辑

2. 同学吧第二个问题的代码发出来看一下

0 回复 有任何疑惑可以回复我~
  • 提问者 qq_鸡毛一地_0 #1
    1、cartList[shopId]里面存的不是数组而是对象,即【shopId: {productId:{_id:'1',...}}】,所以cartList[shopId]得到的是一堆productId不同的对象,因此我觉得Cart.vue中第84行写成【const productList = cartList[shopId] || []】,似乎写成【... || {}】好一点;
    2、我这边所说的第2个问题,是说上1点得到的productList是一堆对象,在js中循环是这样写【let i in productList】,在js的for循环中如果想拿_id值只能写成①product = productList[i]、②product._id。但在Cart.vue中,用v-for对productList进行循环时,却可以写item._id,也就是说不能用js的思维是看待v-for
    回复 有任何疑惑可以回复我~ 2022-08-28 22:16:56
  • productList一直都是对象,拿它去循环我当时就觉得奇怪,但是也可以出来值,更奇怪。
    回复 有任何疑惑可以回复我~ 2023-08-14 16:25:33
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号