1. 第一种方法:借助json对象来实现,若json对象中无该属性则添加,否则不添加,最后返回json对象的属性,时间复杂度为O(n)
function deleteArrayRepeat(arr) {
var result = {};
var temp = [];
//将数组中各元素作为属性存到json对象中
for (var i = 0; i < arr.length; i++) {
if (!result[arr[i]]) {
result[arr[i]] = 0;
         temp.push(arr[i]);
}
}return temp;
}

2.第二种方法使用filter()方法和indexOf()方法。因为filter方法和indexOf方法本质上是一层for循环实现,因此时间复杂度为O(n*n);代码如下

function deleteArrayRepeat(arr){
return arr.filter(function(item,i){
return arr.indexOf(item)===i;
});
}

3.第3种方法:使用indexOf()方法,时间复杂度为O(n*n);

function deleteArrayRepeat(arr){
var temp=[];
for(var i=0;i<arr.length;i++){
if(temp.indexOf(arr[i])===-1){
temp.push(arr[i]);
}
}
return temp;
}

  4.第四种方法:ES6提供了新的数据结构Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。Set本身是一个构造函数,用来生成Set数据结构。根据不允许重复值可以用于数组去重,set是类数组,使用Array.from方法可以将类数组转为数组。

var arr = [1,2,3,4,4,4];
var set = new Set(arr); //类数组
var newArr = Array.from(set);//

最新文章

  1. PermGen space
  2. Matlab 运行C程序出现的编译出错问题
  3. Shape comparison language
  4. 清除浮动的 why
  5. [Effective JavaScript 笔记]第36条:只将实例状态存储在实例对象中
  6. [Android Pro] 横竖屏切换时,禁止activity重新创建,android:configChanges=&quot;keyboardHidden|orientation&quot; 不起作用
  7. redhat6.2下的ssh密钥免密码登录(原创)
  8. 命令行运行R语言脚本(代码)
  9. 英特尔Intel
  10. Dinic 模板
  11. single-row function和muti-row function
  12. codeforces 553D . Nudist Beach 二分
  13. 迪杰斯特拉算法c语言实现
  14. 有向无环图(DAG)的最小路径覆盖
  15. form表单重复提交,type=“button”和type=“submit”区别
  16. (转载)CSS3与页面布局学习总结(三)——BFC、定位、浮动、7种垂直居中方法
  17. Unittest框架小结
  18. Units about ASM
  19. 首席数据官(CDO)的崛起
  20. Java枚举的小用法

热门文章

  1. [LeetCode] Split Array Largest Sum 分割数组的最大值
  2. 【已更新】【原创】Chrome53 最新版惊现无厘头卡死 BUG!
  3. Power Management开发的一般流程
  4. jetbrain系列IDE设置
  5. js版面向对象图片放大镜
  6. https简介/原理/部署【转】
  7. 【USACO 3.2】Factorials(阶层非零尾数)
  8. MYSQL批量修改表前缀与表名sql语句
  9. the user operation is waiting
  10. BZOJ 3931: [CQOI2015]网络吞吐量