00:00
我们现在来讲一下这个血中。首先点点击它是不是删除选中的。先找到这个按钮在哪,是不是它。NG click,这把我们叫做什么呀?叫做deal奥吧,Delete的缩写没问题吧?那么这个方法我们提前是不是要去定义一下?到那。点D等于一个方。好。其实这个删除的话要比这个添加要稍微难一点点。大家说我删除这个,我应该怎么去做它呢?很好,第一步你应该能想到一个东西,你删除是不是要删除血肉的,那么最起码我得知道哪个是血肉的吧。那我上来是不是要去便利他?能懂吗?
01:00
便利谁啊?不是遍历这个数组吗?防是他用的吧。是不是便利吗?便利完我应该是干嘛找到,哎,我就写到这儿,你们说找到什么。找到什么?说白了就是选中的按钮,选中的那个速度。对不对。怎么找你是不是得判断?如果说item是不是便利出来的,每一个对象,我应该是去找一个东西叫。当他为处。说明什么?如果说能记账,说明用户选中。番茄的对不对?大家到这思路能不能跟得上?
02:00
那血中的男生,他我要去干嘛?是不是要删除它,删除的意思就是说从数组里面把当前这个对象给它移除掉。对不对。当前的数组是谁啊?不就是到那佛。点to do吗,怎么删?又考验你们对数索、字符串这些方法是否掌握。哎,很好,有同学想到这了。Lie这个方法,Surprise这个方法其实挺好用的,它可以对树种进行真山改造。当你传两个参数的时候,是要去删除数组里面的某一个元素。第一个元素是你要开始删除的那个下标。下边现在我们有没有。不就是index吗?第二个参数是你要删除的个数。
03:00
上节课走你。那都不。是不是不难啊?来,那我看一下。你们说不拿刷新。看着啊,师范学生走,你是不是实现了?睡觉删没问题来。你会发现睡觉没商量。那是不是睡觉删不掉的?打到都有没事了。那是不是一次只能删一个呢?你们有没有这种考虑啊,应该是有吧,你出了bug,你是不是就得这样去分析啊,是不是只能一次删一个来。又留下来睡觉,而我这一次删了两个。遇到这个怎么去分析它为什么会出现这个问题?
04:00
我再给大家看一遍代码。其实代码看差不多了,你们看一下刚刚有一个规律,什么时候会留一个。而且留的是哪一个?走,你看着睡觉。留的是后一个,你再看我要是把全部选出,如果是留后一个,应该是留打豆豆,但是。留下来是睡觉。提示你们一下,有没有发现只要有两个相邻的。后边那个删掉。啊。只要有两个相连的,后面这个删不掉。本质原因出现在哪来?我来说很好,你这是不是要便利?我之前是不是有一个数组,比如说我有三个元素零,一二。
05:00
如果说我零和一是选中的啊,他俩选中,那么当我去便利到零的话,我发现它选中了,我是不是立马nice把它删除了。删除的结果是什么?我一和二这个下标不会固定不变。我前面是不是少了个元素啊,我一和二的元素是不是会自动往前顶一位。一旦顶到前面一线,在对应的下标其实成了零了。而零那个下标的元素,他认为我已经离过了。能懂吗?所以他会永远漏掉相邻的那一个,就是因为如果说我上一个被杀的话,我下一个是下边会往前走位。就露露这个。首先这个bug大家知道不?那如何去解决它?说白了,他漏不掉内裤,再让他便利一次不就行了吗?
06:01
用用递归不就能解决吗?能懂吧?这个递归其实也很坏,递归的意思不就是在函数内部调用自己吗?现在D这个方法上来是不是就是去便利,然后去删除,那我能不能再让他去再去调用一次。说白了,把那个漏网之鱼给它捞出来。能懂吗?先来看。刷新。做你。好了,但是大家用递归的时候,你们应该也知道,一定要注意递归必须要有结束的条件,否则的话是什么死循环,我问你我现在有没有接受交代?怎么可能,没有,没有,我敢用吗?这不是结束的条件吗?你想我D为什么在if条件语句里面去调用它本身,那当你在便利的时候找不到有选中的,我能进这个应用判断吗?
07:05
那个时候,地归自然结束了。能懂吗?哎,到这儿大家能懂这这种方式吗。但这种方式不太好。大家好,再给你们困难一点。这种方式是正常人的思维,也不是正常人,就是我们上来通常想到的是找到选中的这个图,然后把它删掉。这是我们正常的逻辑思维。那债务,尤其是债务开发的时候,需要你具备一个就是逆向思维的能力来,套路是一样的,我重新再去写一下这个方法。当点D等于一个。刚刚我们是不是找到是选中的删掉它。注意看我,我先给你们写一个啊,来,我先定一个变量叫old to do,我等于dollarco点。To lose。我现在做了一个操作,是将我当前的这个数组是不是赋值给一个变量。
08:06
这步不难吧,那接下来我问一下大家。我把原来这个数组清空了,我问你这个里边有值吗?有没有制服?这一道是笔试题里面应该来来说是最简单的了,就是他们会问你挖一个,比如说对象,哎,A等于一个对象,然后B等于A,然后A清空。问你B有没有值?有这道题,考点在哪?堆和栈讲过没有?尤其是对象数组这一块,你比如说你Y一个OB间等于一个对象,其实OB阶段对应的只是我对象的一个引用,它存放的位置是哪?
09:02
站里面,而我对象的数据真正保存在堆内存里面,你只不过是通过一个引用,什么指向呢?那我把这个清空了,我只是将我之前指向那条线断了,但是我O的速度是不是也指向那个对象,哎,这条线还在。这个答案能懂吗?现在我把原来这个todo清空了,接下来看着我去电力这个all的todo,我能电立它吧?第二。意识套路一样。Item index,但是这一把我要找到未写中的。留下来。什么意思?看着V选中的我们应该是能找到,如果说item.a。举反是不就是微学中的?
10:03
未选中的我要干嘛?说白了留下来的意思,这是不是表示的是,呃,未选中的留下来的意思是我要在页面上去显示出来。选中那些是不是页面上就看不到了。说白了,最终我这个to里边要保留的是那些留下来的。能懂吗?那这样的话,我就可以做这样一个操作。第二。Push push谁?还不就是便利出来对象吗?能懂不?先来看效果,哎,先看疗效。来刷新一下。走,你们。那这样的话,根本不不存在什么漏掉的问题,因为我根本没有对你那个之前的数组进行删除啊或者添加。我只是遍历出来,哎,找到我是不是添加到相当于一个新的数组里面。
11:05
这就是两种思维,而且正好是相反,一个是找到选中的,一个是找到未选中。其实我感觉这种方式要更好一点。先说这个方法大家能不能听懂啊?
我来说两句