javascript数组去重算法

思路:

  1. 构建一个新的数组res存放结果;
  2. for循环中每次从原数组中取出一个元素,判断这个元素在res中的索引值是否<0,若结果<0,则说明res中没有这个元素,因为数组的索引值是从0开始的,如,0,1,2,3……
  3. 若结果数组中没有该元素,则存到结果数组中;

代码如下:
方法一:

// 自定义一个数组
var arr = [1,2,3,1,2,3,1,1,1,2,2,2];
// 新建一个空数组,存放结果
var res = [];
for ( var i = 0; i < arr.length; i++ ){
    if( res.indexOf(arr[i]) < 0 ){
        res.push(arr[i]);
    }
}
console.log(res);

indexOf()方法的使用:
indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。
如果某个字符串(string)不在数组里面,那么无论string的值是什么indexOf(string)输出的值都是 -1

Paste_Image.png

方法二:
思路:

  1. 构建一个新的数组存放结果;
  2. for循环中每次从原数组中取出一个元素,用这个元素循环与结果数组对比;
  3. 若结果数组中没有该元素,则存到结果数组中;
// 自定义一个数组
var arr = [1,2,3,1,2,3,1,1,1,2,2,2];
// 新建一个空数组,存放结果
var res = [];

for ( var i = 0; i < arr.length; i++ ){
    // console.log(arr[i]);
    var repeat = false;
    for ( var j = 0; j < res.length; j++ ){
        if( arr[i] == res[j]){
            repeat = true;
            break;
        }
    }
    if(!repeat){
        res.push(arr[i]);
    }
}
console.log(res);

推荐使用方法一;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,275评论 0 4
  • Javascript有很多数组的方法,有的人有W3C的API,还可以去MDN上去找,但是我觉得API上说的不全,M...
    顽皮的雪狐七七阅读 4,265评论 0 6
  • 第1章 认识JS JavaScript能做什么?1.增强页面动态效果(如:下拉菜单、图片轮播、信息滚动等)2.实现...
    mo默22阅读 1,390评论 0 5
  • 每个人都是24个小时,别人能做那么多事,而我做不到。 为何?难道是我不努力? No,不是我的时间不够,而是精力没管...
    Cicily_阅读 210评论 0 0
  • 回爱,即回味家人曾给儿时我们的爱。他们以为我们太小不知,其实我们一直记得,牢牢地~想通过回爱这个专题来记录他们对我...
    小步昕阅读 123评论 0 0