没有合适的资源?快使用搜索试试~ 我知道了~
JavaScript常见的五种数组去重的方式
5星 · 超过95%的资源 1 下载量 164 浏览量
2020-11-26
18:11:40
上传
评论
收藏 39KB PDF 举报
温馨提示
试读
2页
大致介绍 JavaScript的数组去重问题在许多面试中都会遇到,现在做个总结 先来建立一个数组 var arr = [1,2,3,3,2,'我','我',34,'我的',NaN,NaN]; 第一种 思路:建立一个临时数组,用for循环去依次判断arr中的每个项在临时数组中是否有相同的值,如果没有则将这个值添加到临时数组,如果有相同的值则不添加,最后返回这个临时数组 代码: Array.prototype.removeDuplicate = function(){ var n = []; for(var i=0;i<this.length;i++){ if(n.indexOf(
资源详情
资源评论
资源推荐
JavaScript常见的五种数组去重的方式常见的五种数组去重的方式
大致介绍大致介绍
JavaScript的数组去重问题在许多面试中都会遇到,现在做个总结
先来建立一个数组
var arr = [1,2,3,3,2,'我','我',34,'我的',NaN,NaN];
第一种第一种
思路:建立一个临时数组,用思路:建立一个临时数组,用for循环去依次判断循环去依次判断arr中的每个项在临时数组中是否有相同的值,如果没有则将这个值添加到临中的每个项在临时数组中是否有相同的值,如果没有则将这个值添加到临
时数组,如果有相同的值则不添加,最后返回这个临时数组时数组,如果有相同的值则不添加,最后返回这个临时数组
代码:
Array.prototype.removeDuplicate = function(){
var n = [];
for(var i=0;i<this.length;i++){
if(n.indexOf(this[i]) == -1 ){
n.push(this[i]);
}
}
return n;
}
var m = arr.removeDuplicate();
console.log(m);//[1, 2, 3, "我", 34, "我的", NaN, NaN]
注意:不会去掉重复的NaN值
第二种第二种
思路:建立一个临时数组,用思路:建立一个临时数组,用for循环利用循环利用indexOf()方法去依次判断方法去依次判断arr中的每个项在中的每个项在arr中第一次出现的位置,如果这个项在中第一次出现的位置,如果这个项在
arr中第一次出现的位置就是它的位置,表明在它之前没有相同的值则把它添加到临时数组中,如果这个项在中第一次出现的位置就是它的位置,表明在它之前没有相同的值则把它添加到临时数组中,如果这个项在arr中第一次出现中第一次出现
的位置不是他的位置则表明在它之前有相同的值,则不把他添加到临时数组中;最后返回临时数组的位置不是他的位置则表明在它之前有相同的值,则不把他添加到临时数组中;最后返回临时数组
代码:
Array.prototype.removeDuplicate = function(){
var n = [];
for(var i=0;i<this.length-1;i++){
if(this.indexOf(this[i]) == i){
n.push(this[i]);
}
}
return n;
}
var m = arr.removeDuplicate();
console.log(m);//[1, 2, 3, "我", 34, "我的"]
注意:会把NaN值删除
第三种第三种
思路:建立一个临时对象,利用思路:建立一个临时对象,利用for循环检测这个临时对象有没有循环检测这个临时对象有没有arr[i]这个属性,如果没有这个属性表明这个属性,如果没有这个属性表明arr[i]在它之前没有和在它之前没有和
它重复的值。把临时对象的它重复的值。把临时对象的arr[i]属性设置为属性设置为true,表明有这个属性并把这个项添加到临时数组中;最后返回临时数组,表明有这个属性并把这个项添加到临时数组中;最后返回临时数组
代码:
Array.prototype.removeDuplicate = function(){
var n = [],m = {};
for(var i=0;i<this.length;i++){
if(!m[this[i]]){
m[this[i]] = true;
n.push(this[i]);
}
}
return n;
}
var m = arr.removeDuplicate();
console.log(m);//[1, 2, 3, "我", 34, "我的", NaN]
weixin_38729022
- 粉丝: 4
- 资源: 959
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论10