js学习note1 返回2个数组之间的差异*

        想通过某个途径记录下JavaScript学习点滴,注册简书,开启前端小白皮皮M的JavaScript学习之旅,决心共同蜕变进步 !(๑╹ヮ╹๑)ノ Studying makes me happy ,有点菜,大神们勿喷 ~(ㄒoㄒ)~

js这道坎要跨过去

比较2个数组然后返回1个新的数组,这个数组是这2个数组之间的差异。如[1, 2, 3], [1, 2, 3, 4]应该返回[4]。

皮皮M:那把2个数组拼成1个,[1, 2, 3, 1, 2, 3, 4],把里面有重复的值删掉,最后返回[4]。(其实,刚开始这种思路是错的T^T,于是出现下面的代码。)

错误!没返回[4]

给你捋捋需求哈,比较2个数组,找出他们的差异,比如数组1用forEach去遍历,拿第1个数组的值和第2个数组的值去比较,把2个数组相同的值去掉,剩下的就是有差异的值。(思路是正确的,不过问题出现在不应该直接splice数组,这样会导致数组的长度发生变化,从而计算错误 罒ω罒)

错误!直接splice改变数组长度

我们可以拷贝一个数组出来解决这个问题。

终于得出正确解答!

皮皮M:2个数组进行比较,其中相同的值等于undefined,再把2个数组concat()合并成1个新的数组,去掉undefined,为啥最开始要把2个数组拷贝出来?cloneArr1 = arr1.concat() 和cloneArr1 = arr1,2个返回的值都是一样的。

cloneArr1 = arr1 他们用的都是同一个对象,所以会相互影响。例如:

相互影响,值相同!
concat()数组拷贝!不相互影响,值不同!  

还可以用filter方法,filter方法返回一个新的数组,对里面每一个item进行操作,如果是true就保留,false就删除。

小记:filter为“过滤”、“筛选”之意。指数组filter后,返回过滤后的新数组。filter的callback函数需要返回布尔值true或false. 如果为true则表示,恭喜你,通过啦!如果为false, 只能高歌“我只能无情地将你抛弃……”。

filter方法返回 2个数组之间的差异

        继续努力♪(^∀^●)ノ,Jay的歌单列表循环起来~

        2018/05/10

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • # 数组部分 # 1.## array_chunk($arr, $size [, $preserve_key = ...
    clothTiger阅读 4,952评论 0 1
  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 8,696评论 0 4
  • 1、新的声明方式 以前我们在声明时只有一种方法,就是使用var来进行声明,ES6对声明的进行了扩展,现在可以有三种...
    令武阅读 4,642评论 0 7
  • 2012年,我正式成为了一名小学教师,幸运又幸福。记得小时候,就喜欢在大院里教小弟弟小妹妹们读书识字,那种教与学的...
    花朵quan阅读 1,117评论 0 0
  • 看过动漫《XXXHolic》(四月一日灵异事件簿)的,一定对里面的一种生物印象深刻。那是主角四月一日君寻帮助雨童女...
    持明院主阅读 15,830评论 1 16

友情链接更多精彩内容