问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

记录下js几种常见的数组排序和去重的方法

发布网友 发布时间:2022-04-22 23:28

我来回答

1个回答

热心网友 时间:2022-04-07 06:21

js 数组去重

1

注:应该也可以适用于 object数组,但是本人没有进行验证,贴出来仅供你参考

第一种是比较常规的方法思路:1.构建一个新的数组存放结果2.for循环中每次从原数组中取出一个元素,用这个元素循环与结果数组对比3.若结果数组中没有该元素,则存到结果数组中代码如下:

Array.prototype.unique1 = function(){ var res = [this[0]]; for(var i = 1; i < this.length; i++){ var repeat = false; for(var j = 0; j < res.length; j++){ if(this[i] == res[j]){ repeat = true; break; } } if(!repeat){ res.push(this[i]); } } return res;}var arr = [1, 'a', 'a', 'b', 'd', 'e', 'e', 1, 0]alert(arr.unique1());

第二种方法比上面的方法效率要高思路:1.先将原数组进行排序2.检查原数组中的第i个元素 与 结果数组中的最后一个元素是否相同,因为已经排序,所以重复元素会在相邻位置3.如果不相同,则将该元素存入结果数组中代码如下:

Array.prototype.unique2 = function(){ this.sort(); //先排序 var res = [this[0]]; for(var i = 1; i < this.length; i++){ if(this[i] !== res[res.length - 1]){ res.push(this[i]); } } return res;}var arr = [1, 'a', 'a', 'b', 'd', 'e', 'e', 1, 0]alert(arr.unique2());

二种方法也会有一定的局限性,因为在去重前进行了排序,所以最后返回的去重结果也是排序后的。如果要求不改变数组的顺序去重,那这种方法便不可取了。第三种方法(推荐使用)思路:1.创建一个新的数组存放结果2.创建一个空对象3.for循环时,每次取出一个元素与对象进行对比,如果这个元素不重复,则把它存放到结果数组中,同时把这个元素的内容作为对象的一个属性,并赋值为1,存入到第2步建立的对象中。说明:至于如何对比,就是每次从原数组中取出一个元素,然后到对象中去访问这个属性,如果能访问到值,则说明重复。代码如下:

Array.prototype.unique3 = function(){ var res = []; var json = {}; for(var i = 0; i < this.length; i++){ if(!json[this[i]]){ res.push(this[i]); json[this[i]] = 1; } } return res;}var arr = [112,112,34,'你好',112,112,34,'你好','str','str1'];alert(arr.unique3());
js数组对象去重方法?

js去掉数组中重复的元素1、js数组去重的几种方法利用数组排序,通过相邻元素比较,去除重复元素,可以严格匹配以区分数据类型。借用对象属性方法,将数组中的元素添加为对象的属性。遍历数组元素的时候查询对象是否已经有该属性,如果有则不重复添加。2、可以使用双重循环,逐一对比元素,如有重复,则删除的方...

js 几种数组去重的方式

其次,可以使用`sort`方法对数组进行排序,然后遍历排序后的数组,删除重复元素。这种方法在处理大数据时效率不高,因为需要进行排序操作。接着,使用`for`循环进行去重。通过外层循环遍历数组元素,内层循环比较元素值,当发现重复值时,将其删除。这种方法实现简单,但效率较低,特别是当数组元素较多时。ES6...

JS数组去重(4种方法)

alert(ary);第二种方法是创建一个新数组,只添加不重复的元素,利用`indexOf`方法检查元素是否已存在:var ary=[1,2,3,3,2,3,4,5];var ary1=[];for(var i=0;i&lt;ary.length;i++){ if(ary1.indexOf(ary[i])==-1){ ary1.push(ary[i]);} } alert(ary1);第三种方法是借助对象...

js数组去重(4种方法)

JS数组去重的四种方法:方法一:使用Set数据结构去重 方法二:使用双重遍历法去重 方法三:利用Array的indexOf方法去重 方法四:使用filter方法结合条件判断去重 详细解释:方法一:使用Set数据结构去重 Set是ES6引入的一种新的数据结构,它类似于数组,但Set中的元素都是唯一的,没有重复值。利用Set的特性...

JS数组去重的几种常见方法

第一种是比较常规的方法思路:1.构建一个新的数组存放结果2.for循环中每次从原数组中取出一个元素,用这个元素循环与结果数组对比3.若结果数组中没有该元素,则存到结果数组中代码如下:Array.prototype.unique1 = function(){ var res = [this[0]]; for(var i = 1; i &lt; this.length; i++...

JS数组去重总结

数组去重是编程中常见操作,本文总结了十一种常见的去重方法,以供参考。首先,使用ES6 Set进行去重,代码简洁,但无法处理空对象。其次,运用双层for循环和splice方法进行去重,适用于ES5环境,但效率不高。利用indexOf方法创建结果数组,判断原数组元素是否已存在,避免重复。借助sort方法进行排序后遍历并比较...

js数组去重的5种算法实现

排序后相邻去除法则利用排序使重复值相邻,便于逐个排除。最后,优化的遍历数组法通过双重循环检测重复,实现简洁但效率较高。在实际使用时,需根据具体需求和浏览器兼容性选择合适的方法。对于不支持ECMAScript5的indexOf方法的浏览器,如IE8及其以下版本,可以使用自定义的indexOf实现。总的来说,这五种...

JS删除数组重复元素有哪些方法

这里就 js 如何实现数组去重整理出5种方法,并附上演示Demo 以及 源码。1.遍历数组法 最简单的去重方法,实现思路:新建一新数组,遍历传入数组,值不在新数组就加入该新数组中;注意点:判断值是否在数组的方法“indexOf”是ECMAScript5 方法,IE8以下不支持,需多写一些兼容低版本浏览器代码,源码...

js中数组去重方法总结

1.es6有了Set,可以通过成员唯一性去重 2.使用数组对象的lastIndexOf()方法。(关于lastIndexOf():( https://www.jianshu.com/p/d75886bc6c75 )3.定义新数组,存入原数组第一个元素,再将原数组元素和新数组元素比较,不同的继续push到新数组。4.splice()方法从数组中添加/删除重复值。5.使用...

JS 中常见的几种去重方法

filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素 indexOf ( searchvalue, fromindex ) searchvalue :必填值,规定需检索的字符串值 fromindex :选填值,规定在字符串中开始检索的位置。它的合法取值是 0 到 stringObject.length - 1。 如省略该...

js数组排序的几种方法 js数组排序方法sort 数组排序js方法有哪些 js数组排序的一些函数 对数组进行排序的方法 数组排序方法 js数组sort排序 使用js对数组进行排序 js数组反排序
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
是不是人高马大就会欺负人 清明节扫墓注意事项 七个规矩要谨记 我在有家医院看病几天,总受气,护士对患者不够及时照顾,还横人态度... 猫传腹是什么原因造成的 怎么预防 如何预防的猫传腹 猫传腹怎么预防应激 康佳K17这部手机怎么样(用过的说) 手机QQ2010 怎么下载和使用啊? 召幸皇帝召幸后妃的方法 山寨版的手机能下载QQ2010版的吗? JS中 数组对数组里面的元素排序 怎么做啊? 用JS给查询出来的数据排序 利用JS给UL中的LI 排序代码 JS实现数组排序的方法有哪些 js数组排序的几种方法 OPPO手机充电太慢用电太快为什么? oppo手机手机充电慢怎么办 oppo手机充电慢的原因 oppo手机充电慢的解决方法? OPPO手机充电怎么越来越慢? OPPO手机充电变得很慢,怎么回事? OPPO手机充电变得很慢是怎么回事? 为什么我的OPPO 手机充电总是很缓慢? 因逾期导致花呗500块钱被风控了,要怎样才能解决呢? 花呗被风控了怎么处理? 花呗好像被风控了 怎么解决? 怎样才能把自己的头像照片换成卡通版的? 照片变卡通头像怎么制作? 支付宝种树在哪 中国移动所有套餐介绍? js如何对下面数组进行排序? js对象数组的排序 JavaScript数字数组怎么按数字大小排序? 关于js数组排序 JavaScript数组遍历排序 js数组按照两个条件排序 javascript对有空字符串的列表排序 冰箱外壳很烫是什么原因? 请问电冰箱两侧表面 发烫是什么原因?是烫手的那种,有危险吗?谢谢!_百度... 什么化妆品去皱纹最好 哪个护肤品品牌去细纹的效果好? 去皱纹用什么护肤品效果好 冰箱通电后两侧外面发热,怎么办? 什么牌子的护肤品去皱 紧致效果好 冰箱两外壁发热是怎么回事 去皱纹最有效的护肤品是什么牌子? 什么牌子的护肤品好?去细纹的效果好? 冰箱两侧发烫怎么回事?解决方法有哪些 哪个牌子的抗衰老护肤品去细纹的效果好? 电冰箱外壳发热是怎么回事?