按照课程思路完成后的更简洁的版本
每次看完好几节视频后自己会按照老师的思路来写代码,感觉自己懂了写完代码还是跟老师代码有区别的,SKU这段逻辑看了之后并不是很懂,知道了思路,也记不住老师的代码,自己写完后对比又看了一遍视频,才完全懂了。在写代码过程中发现有些细节其实不用考虑(其实是到这里忘了老师具体怎样处理的,只知道思路)。
在judge中仍然只做两件事,更改当前cell状态和设置其他cell状态
先看设置其他cell状态的方法,对fences遍历,然后每次只拿到当前遍历的这个cell的潜在路径,看看是否存在,这里就与老师的思路有些许差异,这里没有纠结当前行选中的玄素,而是直接略过所有已选元素,对不是已选的元素进行wating和forbidden的设置,因为不管怎样,这里主要的目的是找潜在路径,已选的元素是可以不用处理的。
再看设置当前元素的状态,对于老师的思路就是在加了pendingCell里加了一个清楚已选的方法,因为每行同时只能选择一个,所以当选中一个的时候其他选中的要恢复wating状态,这里是不会从seleted直接切换到forbidden的,所以是可行的。里面第一句return是对有默认规格情况的处理,如果有默认规格,这个代码直接返回不执行
在看完默认规格的处理之后,这里的处理相对来说也更简洁一点,设置默认的sku,就去除默认sku的specs转换为Cell对象,因为specs是有顺序的,而且顺序跟我们设置的规格名顺序是一致的,这就可以直接确定每个cell是哪一行的,就好操作了,所以根据id值遍历一遍cells,将符合条件的cell(是在fenceGroup中的cell,所有操作status的cell都是fenceGroup中的cell)插入到pendingCell中,就完成了默认规格的设置,在constructor中执行方法以及jude就好了。
结果是没出错的
正在回答 回答被采纳积分+1
相似问题
登录后可查看更多问答,登录/注册
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星