js数组去重的方法汇总
三种实用方法教你JavaScript数组去重
在JavaScript中,数组去重是一个常见的操作。今天,我将为大家介绍三种简单实用的方法来实现数组去重,有需要的小伙伴可以参照使用。
方法一:利用indexOf判断新数组
这种方法类似于underscore.js中的实现方式。其核心思想是通过遍历原数组,将每个元素与临时数组进行比较。如果当前元素在临时数组中不存在(即indexOf返回-1),则将该元素添加到临时数组中。通过这种方式,我们可以确保只保留唯一的元素。
示例代码如下:
```javascript
function uniqueByNewArray(arr) {
var tmpArr = []; // 临时数组用于存储不重复的元素
for (var i = 0; i < arr.length; i++) {
// 如果当前元素在临时数组中不存在,则添加到临时数组中
if (tmpArrdexOf(arr[i]) === -1) {
tmpArr.push(arr[i]);
}
}
return tmpArr; // 返回去重后的数组
}
```
方法二:利用indexOf判断旧数组
这种方法与前一种方法有所不同。它同样是遍历原数组,但判断逻辑是在旧数组中进行的。如果当前元素在原数组中第一次出现的位置不是当前遍历的位置,那么说明该元素是重复的,可以将其忽略。这样也可以实现数组去重的效果。以下是相应的示例代码:
```javascript
function uniqueByOldArray(arr) {
var tmpArr = []; // 结果数组用于存储去重后的元素
for (var i = 0; i < arr.length; i++) {
// 如果当前元素在原数组中第一次出现的位置不是当前位置i,则忽略该元素(重复元素)
if (arrdexOf(arr[i]) !== i) {
continue; // 跳过重复元素的处理逻辑,继续下一个元素的判断
} else {
tmpArr.push(arr[i]); // 将非重复元素添加到结果数组中
}
}
return tmpArr; // 返回去重后的数组
}
利用哈希表查找去重
在JavaScript中,我们可以利用对象的特性,即其本质上是一个哈希表,来实现数组的去重操作。这是一种高效且简洁的方法。
以下是利用哈希表进行数组去重的函数实现:
```javascript
function uniqueByHash(arr){
var tmpArr = [], hash = {}; //创建一个空的哈希表和临时数组
for(var i=0; i if(!hash[arr[i]]){ //如果哈希表中没有当前项 hash[arr[i]] = true; //将当前项存入哈希表,表示已存在 tmpArr.push(arr[i]); //同时将该项存入临时数组 } } return tmpArr; //返回去重后的数组 } ``` 数组扩展方法实现去重 除了上述方法,我们还可以扩展Array对象本身,为其添加去重的方法。这样我们可以更方便地在任何数组上调用这些方法。以下是三种不同的扩展方法实现: ```javascript //方法1:使用indexOf查找不重复元素 Array.prototype.unique1 = function(){ var tmpArr = []; for (var i = 0; i < this.length; i++){ if (tmpArrdexOf(this[i]) == -1){ //如果临时数组中不存在当前元素 tmpArr.push(this[i]); //将该元素添加到临时数组 } } return tmpArr; //返回去重后的数组 } //方法2:利用数组自身的indexOf方法判断位置是否相同 Array.prototype.unique2 = function(){ var tmpArr = []; //结果数组 for(var i = 0; i < this.length; i++){ if (thisdexOf(this[i]) == i){ //如果当前元素在数组中的位置与其索引相同,表示它是非重复元素 tmpArr.push(this[i]); //将该元素添加到结果数组 } } return tmpArr; //返回去重后的数组 } //方法3:使用哈希表进行去重,与上述使用哈希表的方法相同,只是集成在Array原型上。 Array.prototype.unique3 = function(){...} //与前面的uniqueByHash函数相同。 ``` ES6中的Set数据结构实现去重 在ES6中,Set是一种新的数据结构,它可以存储一组不重复的值。我们可以利用Set的特性来实现数组的去重。创建Set的方式如下: ```javascript var s = new Set([1, 2, 3, 4, 3]); //创建一个Set,自动去除重复元素
编程语言
- js数组去重的方法汇总
- 解析web文件操作常见安全漏洞(目录、文件名检测
- ASP.NET Core缓存静态资源示例详解
- 针对SQL 2000 的分页存储过程代码分享
- Position属性之relative用法
- Git使用小技巧之回滚与撤销详解
- PHP使用OB缓存实现静态化功能示例
- Yii框架模拟组件调用注入示例
- win7 64位系统 配置php最新版开发环境(php+Apache+
- jQuery插件之Tocify动态节点目录菜单生成器附源码
- 最新IDEA永久激活教程(支持最新2019.2版本)
- JavaScript中标识符提升问题
- jsp实现将信息放入xml中的方法
- 关于jquery中动态增加select,事件无效的快速解决方
- 解析Node.js基于模块和包的代码部署方式
- AngularJS控制器详解及示例代码