js数组去重的方法汇总_javascript技巧
三种方法
利用indexOf判断新数组
underscore.js中实际上也是使用的类似的indexOf
//传入数组 function unique1(arr){ var tmpArr = []; for(var i=0; i<arr.length; i++){ //如果当前数组的第i已经保存进了临时数组,那么跳过, //否则把当前项push到临时数组里面 if(tmpArr.indexOf(arr[i]) == -1){ tmpArr.push(arr[i]); } } return tmpArr; }
利用indexOf判断旧数组
function unique2(arr){ var tmpArr = []; //结果数组 for(var i=0; i<arr.length; i++){ //如果当前数组的第i项在当前数组中第一次出现的位置不是i, //那么表示第i项是重复的,忽略掉。否则存入结果数组 if(arr.indexOf(arr[i]) == i){ tmpArr.push(arr[i]); } } return tmpArr; }
利用hash查找
这里利用了JS对象的实现就是hash表的特性
function unique3(arr){ var tmpArr = [], hash = {};//hash为hash表 for(var i=0;i<arr.length;i++){ if(!hash[arr[i]]){//如果hash表中没有当前项 hash[arr[i]] = true;//存入hash表 tmpArr.push(arr[i]);//存入临时数组 } } return tmpArr; }
数组扩展
Array.prototype.unique1 = function (){ var tmpArr = []; for (var i = 0; i < this.length; i++){ if (tmpArr.indexOf(this[i]) == -1){ tmpArr.push(this[i]); } } return tmpArr; } Array.prototype.unique2 = function(){ var tmpArr = []; //结果数组 for(var i = 0; i < this.length; i++){ if (this.indexOf(this[i]) == i){ tmpArr.push(this[i]); } } return tmpArr; } Array.prototype.unique3 = function(){ var tmpArr=[], hash = {}; for(var i = 0; i < this.length; i++){ if (!hash[this[i]]){ hash[this[i]] = true; tmpArr.push(this[i]); } } return tmpArr; }
使用Set
Set和Map是ES6中新增的数据结构
Set直接可以存储不重复的一组key,这个key也可以是对象,字符串等
创建set
var s = new Set([1, 2, 3,]); s; // Set {1, 2, 3}
新增元素
>>> s.add(4) >>> s {1, 2, 3, 4} >>> s.add(4) >>> s {1, 2, 3, 4}//重复元素不会被添加
删除元素
s; // Set {1, 2, 3, 4} s.delete(3); s; // Set {1, 2, 4}
遍历元素
Map和Set无法使用下标
ES6标准引入了新的iterable类型,Array、Map和Set都属于iterable类型
var s = new Set(['A', 'B', 'C']); for (var x of s) { // 遍历Set alert(x); }
或者直接使用iterable内置的forEach方法
forEach方法是ES5.1标准引入的
var s = new Set(['A', 'B', 'C']); s.forEach(function (element, set) { alert(element); });
以上所述就是本文的全部内容了,希望大家能够喜欢。

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

PHP的array_unique()函数用于去除数组中重复元素,其缺省使用严格相等(===)。我们可以通过自定比较函数来指定去重依据:创建自定比较函数,指定去重的标准(例如根据元素长度);将自定比较函数作为第三个参数传递给array_unique()函数,即可根据指定的标准去除重复元素。

PHP数组去重后保持键值对应的方法有:使用array_unique()函数去除重复值,再用array_flip()函数交换键值对。将原始数组与去重后的数组合并,使用数组合并的方法来保留键值对应。

PHP数组去重时处理空值和null值的技巧:使用array_unique搭配array_filter过滤空值和null值。使用array_unique并定义自定义比较函数,将空值和null值视为相等。使用array_reduce遍历数组,并在不包含空值或null值的情况下添加项。

在PHP中,使用array_unique()函数,根据特定键值对去除数组重复项。调用函数时传入数组作为参数,选择排序方式作为第二个参数。此函数返回一个新数组,其中重复项已根据指定的键值对被移除。

PHP中排除重复数组的方法:1、创建一个PHP示例文件;2、定义待去重的数组为“$oldArr”,去重后的新数组为“$newArr”;3、使用“array_unique()”函数去除数组中重复元素,并返回去重后的数组,其代码为“$newArr = array_unique($oldArr);”即可排除;4、还可以通过for循环的方式进行去重。

方法:1、利用“[...new Set(arr)]”语句;2、利用“Array.from(new Set(arr))”语句;3、利用filter和indexOf函数;4、利用双重for循环,检查值是否重复,如果有重复就使用push()删除。

php去掉数组内重复元素的方法:1、使用“array_unique()”函数,去除数组中的重复数据;2、通过foreach循环遍历,通过定义一个新的数组存储不重复的数据的方法实现去重;3、使用array_flip()和array_keys()函数,可得到去重后的数组;4、使用array_filter()函数,通过使用该函数结合匿名函数的方式对原始数组进行去重。
