// 删除重复的
function only(arr){
	for(var i=0;i<arr.length;i++){
		for(var j = i+1;j<arr.length;j++){
			if(arr[i]===arr[j]){
			    arr.splice(j,1);
			    j--;
			}
		}
	}
	return arr;
}
console.log(only([6]));//[6]
console.log(only([1,9,8,8,0,6,0,6]));//[1, 9, 8, 0, 6]

// 往新数组中插入不重复的元素或在最后一个位置的重复元素
function only(arr){
var newArr = [],
len = arr.length;
for(var i = 0;i<len;i++){
    for(var j = i+1;j<len;j++){
        if(arr[i]===arr[j]){
			j = false;
			break;
    	}
	}
	if(j){
    	newArr.push(arr[i]);
	}
}
return newArr;
}
console.log(only([6]));//[6]
console.log(only([1,9,8,8,0,6,0,6]));//[1, 9, 8, 0, 6]

//往新数组中插入不重复的元素或在最后一个位置的重复元素
//难理解一些,关键是“j = ++i;”,相当于开启新一轮的i循环(外层循环)
function only(arr){
    var newArr = [],
    len = arr.length;
    for(var i = 0;i<len;i++){
        for(var j = i+1;j<len;j++){
            if(arr[i] === arr[j]){
		j = ++i;
	    }
    	}
	newArr.push(arr[i]);
    }
    return newArr;
}
console.log(only([6]));//[6]
console.log(only([1,9,8,8,0,6,0,6]));//[1, 9, 8, 0, 6]

//将数组元素设为对象属性,值为true;如重复,不再添进数组
function only(arr){
    var newArr = [],
        obj = {},
        m;
    for(var i = 0;(m = arr[i]) !== undefined;i++){
        if(!obj[m]){
            newArr.push(arr[i]);
            obj[m] = true;
        }
    }
    return newArr;
}
console.log(only([6]));//[6]
console.log(only([1,9,8,8,0,6,0,6]));//[1, 9, 8, 0, 6]

  

js数组去重的四种方式的更多相关文章

  1. JS 数组去重的几种方式

    JS 常见的几种数组去重方法 一.最简单方法(indexOf 方法) 实现思路:新建一个数组,遍历要去重的数组,当值不在新数组的时候(indexOf 为 -1)就加入该新数组中: function u ...

  2. js 数组去重的几种方式及原理

    let arr = [1,1,'true','true',true,true,15,15,false,false, undefined,undefined, null,null, NaN, NaN,' ...

  3. js数组去重的三种方式的比较

    做前端的,一般实现功能是主要的,但是重中之重却是在做到功能完善的情况下提高性能. 1.遍历数组法 实现的思路:构建一个新的数组存放结果,for循环中每次从原数组中取出一个元素,用这个元素循环与结果数组 ...

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

    JS数组去重的几种常见方法 一.简单的去重方法 // 最简单数组去重法 /* * 新建一新数组,遍历传入数组,值不在新数组就push进该新数组中 * IE8以下不支持数组的indexOf方法 * */ ...

  5. js 复制文本的四种方式

    js 复制文本的四种方式 一.总结 一句话总结:js文本复制主流方法:document的execCommand方法 二.js 复制文本的四种方式 纯 转载复制,非原创 原地址:http://www.c ...

  6. js数组去重的4种方法

    js数组去重,老生长谈,今天对其进行一番归纳,总结出来4种方法 贴入代码前 ,先对浏览器Array对象进行支持indexOf和forEach的polyfill Array.prototype.inde ...

  7. JS数组去重的6种算法实现

    1.遍历数组法 最简单的去重方法,实现思路:新建一新数组,遍历传入数组,值不在新数组就加入该新数组中:注意点:判断值是否在数组的方法"indexOf"是ECMAScript5 方法 ...

  8. js 实现复制功能的四种方式的优劣对比

    今日网上浏览别人项目,看到有人用了document.execCommand这个属性,于是想起之前我选用Clipboard.js 来实现.对于这种不常用的属性还是不太放心,于是随手查了下关于复制的资料, ...

  9. JavaScript数组去重的四种方法

    今天,洗澡的想一个有趣的问题,使用js给数组去重,我想了四种方法,虽然今天的任务没有完成,5555: 不多说,po代码: //方法一:简单循环去重    Array.prototype.unique1 ...

随机推荐

  1. 【udacity】机器学习-回归

    Evernote Export 1.什么是回归? regression 在监督学习中,包括了输入和输出的样本,在此基础上,我们能够通过新的输入来表示结果,映射到输出 输出包含了离散输出和连续输出 2. ...

  2. 【leecode】小练习(简单8题)

    def twoSum(nums, target): """ 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[ ...

  3. idea使用lombok

    1.这玩意可以帮助我们自动实现set.get方法,实现过程有两处,只要理解了这两处,对其实际工作如何使用就非常简单了 2.第一点就是编译过程,比如使用gradle build 等编译工具进行编译时,会 ...

  4. linux vim 编辑文件时无法保存

    操作ESC + : wq   无反应 那么我们操作SHFT按键,在操作Z按键,连续按两下Z按键即可(保存当前内容且退出)

  5. pandas之cut(),qcut()

    功能:将数据进行离散化 可参见博客:https://blog.csdn.net/missyougoon/article/details/83986511 , 例子简易好懂 1.pd.cut函数有7个参 ...

  6. 利用Tensorflow实现手写字符识别

    模式识别领域应用机器学习的场景非常多,手写识别就是其中一种,最简单的数字识别是一个多类分类问题,我们借这个多类分类问题来介绍一下google最新开源的tensorflow框架,后面深度学习的内容都会基 ...

  7. spring data JPA使用quartz定时器的具体实现

    第一步.在pom.xml中的配置 <!--quartz--> <dependency> <groupId>org.quartz-scheduler</grou ...

  8. 获取某个参数的值 value

    Window("Flight Reservation").WinEdit("Order No:").Output CheckPoint("Order ...

  9. Quartz.Net 使用心得(一)

    最近工作内容与定时任务相关,在实际使用Quartz过程中,有两个小问题较为困扰. 一.多个Trigger如何触发一个Job. 比如上下班打卡时推送消息,上班时间为9:30,打卡提醒时间为9:20较好. ...

  10. POJ 3613

    可以利用DP的思想来做,不过是在DP时加上了矩阵乘法的思想而已,但乘法不是真的乘法,而是mp[a][i]+mp[i][b]<mp[a][b]则更新,其实更像FLOYD. 但这是符合乘法的格式的. ...