时间:2021-05-25
第一种是比较常规的方法
思路:
1.构建一个新的数组存放结果
2.for循环中每次从原数组中取出一个元素,用indexOf查找新数组中是否有该元素
3.若没有,则存到结果数组中
复制代码 代码如下:
Array.prototype.unique1 = function(){
var res = [];
for(var i = 0; i < this.length; i++){
if(res.indexOf(this[i]) == -1){
res.push(this[i]);
}
}
return res;
}
var arr = [1, 'a', 'a', 'b', 'd', 'e', 'e', 1, 0]
alert(arr.unique1())
此基础上可以略微优化,但原理不变,效果也不明显
复制代码 代码如下:
Array.prototype.unique1 = function(){
var res = [this[0]];//直接将原数组中的第一个元素存入构建的新数组中
for(var i = 1; i < this.length; i++){//循环从第二个元素开始
if(res.indexOf(this[i]) == -1){
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())
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了JavaScript基于对象方法实现数组去重及排序操作。分享给大家供大家参考,具体如下://用对象方法实现数组去重Array.prototype.
本文实例讲述了javascript数组去重常用方法。分享给大家供大家参考,具体如下:数组去除重复值是面试常考内容,也是很容易用到的一个技巧,下面就几种去重的方法
本文实例讲述了JS数组去重常用方法。分享给大家供大家参考,具体如下:js数组去重,老生长谈,今天对其进行一番归纳,总结出来4种方法贴入代码前,先对浏览器Arra
一、字符串去重说起字符串去重,第一时间就会想起数组去重,所以我们可以把字符串转换为数组,然后对数组去重,去重完毕后在拼接成字符串,下面就简单罗列两种字符串去重的
JS实现数组去重(重复的元素只保留一个)1、遍历数组法1.遍历数组法它是最简单的数组去重方法(indexOf方法)实现思路:新建一个数组,遍历去要重的数组,当值