数组去重
来源:互联网 发布:部队网络安全教育 编辑:程序博客网 时间:2024/06/07 08:02
数组去重可谓面试题经典呢,如果能用多种方式实现的话,那么至少会给面试官留下一定的好感,觉得你的思维很广阔。
在这里我向大家介绍3种方法实现
我们在这里顶一个数组
var arr = [3,5,5,5,1,2,3,4];
方法1:
遍历数组,定义一个新的数组(newarr),用indexOf()判断是否在新的数组(newarr)中出现原数组中的每一项,如果没有出现,就push进去。代码如下:
function noRepeat(arr1){ var newarr = []; for(var i=0;i<arr1.length;i++){ //判断新的数组(newarr)中是否存在arr[i],如果没有存在,就push到新的数组中 if(newarr.indexOf(arr1[i]) === -1){ newarr.push(arr1[i]); } } //注意这里需要return return newarr;}var arr1 = [3,5,5,5,1,2,3,4];var result1 = noRepeat(arr1);console.log('去重后的数组',result1);
**indexOf()**判断字符串中第一次出现的位置,返回的是位置,如果是-1的话,说明就是没有
方法2:
首先是进行排序,不需要改进版的,因为只要把相同的项排在一起就行了,然后用这一项和下一项进行比较。如果相等的话,就通过splice()方法删除。记得需要–i;不然会少比一项。
代码如下:
function noRepeat2(arr2){ arr2.sort(); for(var i=0;i<arr2.length;i++){ if(arr2[i] == arr2[i+1]){ arr2.splice(i,1); i--; } } return arr2;}var arr2 = [3,5,5,5,1,2,3,4];var result2 = noRepeat2(arr2);console.log('去重后的数组',result2);
方法3
1.通过创建一个空对象,然后遍历数组,如果对象中没有原数组中的每一项时就push到新的数组中。
function noRepeat3(arr3) { var json = {}; var newarr = []; for(var i=0;i<arr3.length;i++){ if(!json[arr3[i]]){ json[arr3[i]] = true; newarr.push(arr3[i]); } } return newarr;}var arr3 = [3,5,5,5,1,2,3,4];var result3 = noRepeat3(arr3);console.log('result3',result3);
阅读全文
0 0
- 数组去数组重
- 数组去重,json数组去重
- 数组去重
- 数组去重
- JS 数组去重
- 数组去重算法
- 数组去重
- js数组去重
- php 数组去重
- 数组去重
- 数组排序去重
- javascript数组去重
- json数组去重
- 数组去重
- php数组去重
- 数组如何去重
- iOS 数组去重
- 动态数组去重
- cmake入门使用
- CORS跨域-Nginx使用方法(Access-Control-Allow-Origin错误提示)
- c3p0的相关配置说明
- Deep Learning实战之word2vec
- 关于递推平均分几块问题
- 数组去重
- LeetCode小白菜笔记[7]:Merge Two Sorted Lists
- 生成器是特殊的迭代器?
- ajax 下拉框连动选择省市县
- React-Native Android环境搭建
- 从0到1搭建spark集群---企业集群搭建
- IT行业近年风投业简析
- 基于springboot搭建dubbo框架(注解和xml配置两种方式)
- 一位资深程序员大牛给予Java初学者的学习建议