`
妖术在烧纸
  • 浏览: 9275 次
  • 性别: Icon_minigender_2
  • 来自: 成都
社区版块
存档分类
最新评论

关于js数组的学习

阅读更多
昨天在做项目的时候,遇到一个这样的需求,简单说来就是:有两个数组,a和b,将a数组中和b数组中相同的对象元素删除,因为数组保存的是对象,两个数组之间的联系就在对象中userId,在遍历删除的时候,
1.    开始用了splice()方法,结果就是始终都删不完,原因是因为splice删除后返回新的数组,但是计数的i还是一开始的数组长度,所以当删除到一半+1的时候后面的就删除掉了。
2.     delete方法,delete删除后数组的长度不会发生变化,正开心,这样就不会删除不掉了啊,确实在a和b一样的时候能删除完,但是当数据不一致的时候,在第一次删除后再删第二批的时候,发现console打出了错误,对象没有userId这个属性,我了个擦,第一次用delete,不知道删除后长度不变且删除后的变成了undefined。。。。。
最后还是用了delete,遍历完后又一一把undefined筛选出来,感觉比较low,无奈自己想不到更好的了。。。


3.因为这么Low的做法,我去学习了一下,reduce,感觉用起来棒棒哒,介绍一下:
reduce()方法接收一个函数callbackfn达到累加的结果,数组中的每个值(从左到右)开始执行.z这个函数包含4个参数:
function reduceArr(preValue,curValue,index,array){}
(1)preValue是上一次执行后返回的值或者是初始值
(2)当前执行的值
(3)当前执行到的数组的下标
(4)当然就是循环的数组了啊
现在来实现一个数组累加的结果:
var arrVal = [1,2,3,4,5]
arr.reduce(function(pre, cur, index, arrVal) {
   return pre + cur   //10
})
再来看一种有初始值的情况,
arr.reduce(function(pre, cur, index, arrVal) {
   return pre + cur //18
},3)
看起来是不是比平时写的for循环之类的高大上?最主要的是不想重复的去写那些无用功啊
还有一个就是reduceRight用法和reduce没什么区别,reduceRight是从末尾开始累加。。。

0
2
分享到:
评论
1 楼 cdphantom 2016-03-16  
reduce方法和你的需求:删除数据中相同的对象有什么关系呢?

相关推荐

    JS合并两个数组的3种方法详解

    这篇文章主要介绍了JS合并两个数组的3种方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 需要将两个数组合并成为一个的情况。比如: var a = [1,2,3];...

    [笔记]认识Javascript数组

    个人多年前学习笔记,Javascript数组,初学者可以看看,高手就不用看了

    使用JavaScript数组模拟Java的Hashtable集合

    于是,本人使用JavaScript的数组模拟Hashtable集合,说明JavaScript数组的特别之外。 环境:Windows XP Professional, IE 6.0 阅读对象:所有学习JavaScript的学员。 注:本示例代码注释非常详细,请仔细阅读体会...

    js数组操作学习总结.doc

    js数组操作学习总结.doc

    关于JavaScript的数组排序

    在学习JavaScript中,做的笔记,关于数组排序的,具体是按字母升序排序,按数字升序或降序排序。如有需要,请自行下载。

    js学习总结(8)源码

    JavaScript数组学习JavaScript数组学习JavaScript数组学习JavaScript数组学习JavaScript数组学习JavaScript数组学习JavaScript数组学习

    JavaScript数组对象JSON学习笔记

    JavaScript数组对象JSON学习笔记,推荐

    JS中Array数组学习总结.docx

    JS中Array数组学习总结.docx

    整理Javascript数组学习笔记

    整理Javascript数组学习笔记,之前一系列的文章是跟我学习Javascript,本文就是进一步学习javascript数组,希望大家继续关注

    JavaScript数组对象Array.pdf

    JavaScript数组对象Array.pdf 学习资料 复习资料 教学资源

    Javascript数组循环遍历之forEach详解

    本篇文章主要介绍了Javascript 数组循环遍历之forEach详解,对学习forEach有很好的帮助,有需要的可以了解一下。

    最实用的JS数组函数整理

    软件开发网以前就给大家整理过关于JS数组相关的内容,这次我们给大家整理的是非常实用的JS数组操作技巧和写法,学习下吧。 instanceof 检测一个对象是否是数组;(用来对付复杂数据类型;) // 简单数据类型 typeof ; A...

    JavaScript数组.xmind

    自己总结的JavaScript数组的笔记,绘制了详细的思维导图,每个思维导图中均有详细的博文解释,方便大家学习和理解,免费分享给大家。适合网页前端的爱好者和学习者

    JavaScript学习笔记之数组去重

    话说面试常会碰到面试官会问JavaScript实现数组去重的问题,最近刚好在学习有关于JavaScript数组相关的知识,趁此机会整理了一些有关于JavaScript数组去重的方法。 下面这些数组去重的方法是自己收集和整理的,如有...

    JavaScript数组对象Array案例.pdf

    JavaScript数组对象Array案例.pdf 学习资料 复习资料 教学资源

    关于JavaScript数组去重的一些理解汇总

    主要给大家介绍了关于JavaScript数组去重的一些理解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    分析JavaScript数组操作难点

    以下内容是学习JavaScript数组的时候总结的经验以及需要注意的点。 不要用 for_in 遍历数组 这是 JavaScript 初学者常见的误区。for_in 用于遍历对象中包括原型链上的所有可枚举的(enumerable)的 key,本来不是为...

    JavaScript数组排序的六种常见算法总结

    主要给大家介绍了关于JavaScript数组排序的六种常见算法,文中通过示例代码介绍的非常详细,对大家的学习或者使用JavaScript数组具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧

    js数组中去除重复值的几种方法

    在日常开发中,我们可能会遇到将一个数组中里面的重复值去除,那么,我就将我自己所学习到的几种方法分享出来  去除数组重复值方法:  1,利用indexOf()方法去除  思路:创建一个新数组,然后循环要去重的数组,...

    JavaScript数组去重的几种方法

    主要给大家介绍了关于JavaScript数组去重的几种方法,文中通过示例代码介绍的非常详细,对大家学习或者使用JavaScript具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧

Global site tag (gtag.js) - Google Analytics