昨天在做项目的时候,遇到一个这样的需求,简单说来就是:有两个数组,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是从末尾开始累加。。。
分享到:
相关推荐
扩展阅读中提及的专题,例如《JavaScript数组操作技巧总结》、《JavaScript遍历算法与技巧总结》等,为读者提供了更多的学习资源。通过这些资源,读者可以更加全面地掌握JavaScript中数组操作的多种技巧和方法,从而...
JavaScript数组是JavaScript中的基本数据结构之一,它提供了一系列的内置方法,可以用来处理和操作数组内容。接下来,我会详细解释几个关键的JavaScript数组方法,包括map、filter、reduce以及展开操作符,并通过...
个人多年前学习笔记,Javascript数组,初学者可以看看,高手就不用看了
这篇文章主要介绍了JS合并两个数组的3种方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 需要将两个数组合并成为一个的情况。比如: var a = [1,2,3];...
在JavaScript中,数组是一种常用的数据结构,用于存储和操作一系列有序的数据。ArrayUtil是一个实用的JavaScript...此外,分析源码还可以帮助我们理解面向对象编程、函数式编程以及JavaScript数组操作的内部工作原理。
于是,本人使用JavaScript的数组模拟Hashtable集合,说明JavaScript数组的特别之外。 环境:Windows XP Professional, IE 6.0 阅读对象:所有学习JavaScript的学员。 注:本示例代码注释非常详细,请仔细阅读体会...
首先,让我们了解JavaScript数组的基本创建方法。可以通过以下几种方式创建数组: 1. `var arr = new Array();` 或 `var arr = [];` 2. 初始化时指定元素:`var arr = [元素1, 元素2, ...];` 3. 通过数组长度创建:...
在学习JavaScript中,做的笔记,关于数组排序的,具体是按字母升序排序,按数字升序或降序排序。如有需要,请自行下载。
JavaScript数组支持多种操作方法,如`push`(在末尾添加元素)、`pop`(移除并返回末尾元素)、`shift`(移除并返回首位元素)、`unshift`(在首位添加元素)、`slice`(截取子数组)、`splice`(插入、删除或替换...
JavaScript数组学习JavaScript数组学习JavaScript数组学习JavaScript数组学习JavaScript数组学习JavaScript数组学习JavaScript数组学习
- **《JavaScript数组操作技巧总结》**:涵盖数组的创建、遍历、合并、排序、过滤等多种操作。 - **《JavaScript字符与字符串操作技巧总结》**:涉及字符串的拼接、截取、查找、替换等方法。 - **《JavaScript...
在这个主题中,我们将深入探讨`apply()`方法、Math对象以及JavaScript数组和对象的验证。 `apply()`是JavaScript中的一个函数调用方式,它允许我们改变函数调用的上下文(即`this`值)并传入参数数组。`apply()`的...
### JavaScript 数组对象 JSON 学习笔记 #### 一、JavaScript 数组操作 在 JavaScript 中,数组是一种常用的数据结构,用于存储多个值。本部分主要介绍如何创建数组、访问数组元素以及对数组进行各种操作。 #####...
通过深入学习和实践这些知识点,开发者可以更好地理解和利用JavaScript数组的强大功能,优化代码效率,并处理复杂的数据结构。对于与对象的关系,理解数组的“对象”本质,可以帮助开发者灵活地在数组和对象之间进行...
这篇博客将深入探讨JavaScript数组的相关知识。 首先,数组的创建有几种常见方式。最基础的是通过`[]`直接创建,例如`var arr = [];`。另一种是通过`Array()`构造函数,如`var arr = new Array();`。此外,还可以在...
JavaScript数组提供了丰富的内置方法,如push、pop、shift、unshift、slice、splice、concat、indexOf、join等,这些方法极大地提高了我们处理数组的效率。在`array.js`文件中,可能会包含对这些方法的自定义实现...
JavaScript中的数组操作是编程中非常常见且重要的部分,它提供了多种方法来创建、修改和处理数组。以下是对这些操作的详细解释: 1. **shift()**:`shift()` 方法从数组的第一个位置移除元素,并返回移除的元素值。...
在日常开发中,我们可能会遇到将一个数组中里面的重复值去除,那么,我就将我自己所学习到的几种方法分享出来 去除数组重复值方法: 1,利用indexOf()方法去除 思路:创建一个新数组,然后循环要去重的数组,...
### JavaScript 数组详解 ...通过以上内容的学习,我们对JavaScript中的数组有了全面的理解。掌握了数组的创建、基本操作以及高级方法的应用,有助于开发者更加高效地使用数组来处理各种数据操作问题。