every部分

every部分

diffArr.forEach(([, i2]) => {

                this.figures.every((figure, index) => {

                    let src = methods.$('img', figure).src;


                    if (src === nextImgs[i2]) {

                        this.figures.splice(index, 1);

                        return false;

                    }

                    return true;

                });

            });

为什么当当前图片和下一组图片的src一样的时候,要删除当前图片的索引呢?而且代码的意思是有一个相同,就删除索引,并且返回false吧?那样怎么判断后面的图片有没有相同的呢?感觉代码的意思是全部都不相同了才会返回true啊?

正在回答

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

2回答

同学你好,问题解答如下:

1.要理解,这里只是删除了this.figures中相同的图片,并没有说是移除页面中的相同的图片。同学看一下代码,figures移除了相同的图片,剩余的就是不同的。那么把不同的隐藏,后续又会在图片容器中移出它们,所以页面中剩余的就是相同的图片哦。

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

2.forEach中使用return,只是跳出当前循环,不会跳出整个循环的。所以这里会继续判断后面的图片。return没有什么用,不加return 也可以哦。

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

祝学习愉快~

好帮手慕夭夭 2020-05-11 11:20:18

同学你好,删除相同的图片之后,this.figures剩下的就是不同的图片。不同的图片在下一次切换时,是不显示的。后面给this.figures的图片设置了隐藏,如下:

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

所以需要在隐藏前先把相同的图片给移出,再理解一下哦。

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

  • 提问者 Aurora_Meteor #1
    相同图片的索引删除了那相同图片是不是就应该不在了呢?和隐藏了不显示有什么区别?还是说只是删除了索引但图片还在?还在的话它是在什么地方呢? 另外麻烦回答一下我的后两个疑问呗,那个true和false?图片相同了返回false,然后这个遍历不就结束了吗?还怎么判断后面的图片?也不可能返回true了呀
    2020-05-11 11:39:22
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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