`
妖术在烧纸
  • 浏览: 9922 次
  • 性别: 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数组相减简单示例【删除a数组所有与b数组相同元素】

    扩展阅读中提及的专题,例如《JavaScript数组操作技巧总结》、《JavaScript遍历算法与技巧总结》等,为读者提供了更多的学习资源。通过这些资源,读者可以更加全面地掌握JavaScript中数组操作的多种技巧和方法,从而...

    关于JavaScript 数组你应该知道的事情(推荐)

    JavaScript数组是JavaScript中的基本数据结构之一,它提供了一系列的内置方法,可以用来处理和操作数组内容。接下来,我会详细解释几个关键的JavaScript数组方法,包括map、filter、reduce以及展开操作符,并通过...

    [笔记]认识Javascript数组

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

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

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

    js 数组工具类 ArrayUtil

    在JavaScript中,数组是一种常用的数据结构,用于存储和操作一系列有序的数据。ArrayUtil是一个实用的JavaScript...此外,分析源码还可以帮助我们理解面向对象编程、函数式编程以及JavaScript数组操作的内部工作原理。

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

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

    JS数组的增删改查

    首先,让我们了解JavaScript数组的基本创建方法。可以通过以下几种方式创建数组: 1. `var arr = new Array();` 或 `var arr = [];` 2. 初始化时指定元素:`var arr = [元素1, 元素2, ...];` 3. 通过数组长度创建:...

    关于JavaScript的数组排序

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

    javascript中数组、对象

    JavaScript数组支持多种操作方法,如`push`(在末尾添加元素)、`pop`(移除并返回末尾元素)、`shift`(移除并返回首位元素)、`unshift`(在首位添加元素)、`slice`(截取子数组)、`splice`(插入、删除或替换...

    js学习总结(8)源码

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

    JS数组中对象去重操作示例

    - **《JavaScript数组操作技巧总结》**:涵盖数组的创建、遍历、合并、排序、过滤等多种操作。 - **《JavaScript字符与字符串操作技巧总结》**:涉及字符串的拼接、截取、查找、替换等方法。 - **《JavaScript...

    js利用apply(), Math object, js数组,对象完全智能验证

    在这个主题中,我们将深入探讨`apply()`方法、Math对象以及JavaScript数组和对象的验证。 `apply()`是JavaScript中的一个函数调用方式,它允许我们改变函数调用的上下文(即`this`值)并传入参数数组。`apply()`的...

    JavaScript数组对象JSON学习笔记

    ### JavaScript 数组对象 JSON 学习笔记 #### 一、JavaScript 数组操作 在 JavaScript 中,数组是一种常用的数据结构,用于存储多个值。本部分主要介绍如何创建数组、访问数组元素以及对数组进行各种操作。 #####...

    js 数组的变化

    通过深入学习和实践这些知识点,开发者可以更好地理解和利用JavaScript数组的强大功能,优化代码效率,并处理复杂的数据结构。对于与对象的关系,理解数组的“对象”本质,可以帮助开发者灵活地在数组和对象之间进行...

    JS—数组

    这篇博客将深入探讨JavaScript数组的相关知识。 首先,数组的创建有几种常见方式。最基础的是通过`[]`直接创建,例如`var arr = [];`。另一种是通过`Array()`构造函数,如`var arr = new Array();`。此外,还可以在...

    JavaScript 实现Array(数组)和Map

    JavaScript数组提供了丰富的内置方法,如push、pop、shift、unshift、slice、splice、concat、indexOf、join等,这些方法极大地提高了我们处理数组的效率。在`array.js`文件中,可能会包含对这些方法的自定义实现...

    js数组操作学习总结.doc

    JavaScript中的数组操作是编程中非常常见且重要的部分,它提供了多种方法来创建、修改和处理数组。以下是对这些操作的详细解释: 1. **shift()**:`shift()` 方法从数组的第一个位置移除元素,并返回移除的元素值。...

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

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

    JavaScript数组

    ### JavaScript 数组详解 ...通过以上内容的学习,我们对JavaScript中的数组有了全面的理解。掌握了数组的创建、基本操作以及高级方法的应用,有助于开发者更加高效地使用数组来处理各种数据操作问题。

Global site tag (gtag.js) - Google Analytics