1. // 删除重复的
  2. function only(arr){
  3. for(var i=0;i<arr.length;i++){
  4. for(var j = i+1;j<arr.length;j++){
  5. if(arr[i]===arr[j]){
  6. arr.splice(j,1);
  7. j--;
  8. }
  9. }
  10. }
  11. return arr;
  12. }
  13. console.log(only([6]));//[6]
  14. console.log(only([1,9,8,8,0,6,0,6]));//[1, 9, 8, 0, 6]
  15.  
  16. // 往新数组中插入不重复的元素或在最后一个位置的重复元素
  17. function only(arr){
  18. var newArr = [],
  19. len = arr.length;
  20. for(var i = 0;i<len;i++){
  21. for(var j = i+1;j<len;j++){
  22. if(arr[i]===arr[j]){
  23. j = false;
  24. break;
  25. }
  26. }
  27. if(j){
  28. newArr.push(arr[i]);
  29. }
  30. }
  31. return newArr;
  32. }
  33. console.log(only([6]));//[6]
  34. console.log(only([1,9,8,8,0,6,0,6]));//[1, 9, 8, 0, 6]
  35.  
  36. //往新数组中插入不重复的元素或在最后一个位置的重复元素
  37. //难理解一些,关键是“j = ++i;”,相当于开启新一轮的i循环(外层循环)
  38. function only(arr){
  39. var newArr = [],
  40. len = arr.length;
  41. for(var i = 0;i<len;i++){
  42. for(var j = i+1;j<len;j++){
  43. if(arr[i] === arr[j]){
  44. j = ++i;
  45. }
  46. }
  47. newArr.push(arr[i]);
  48. }
  49. return newArr;
  50. }
  51. console.log(only([6]));//[6]
  52. console.log(only([1,9,8,8,0,6,0,6]));//[1, 9, 8, 0, 6]
  53.  
  54. //将数组元素设为对象属性,值为true;如重复,不再添进数组
  55. function only(arr){
  56. var newArr = [],
  57. obj = {},
  58. m;
  59. for(var i = 0;(m = arr[i]) !== undefined;i++){
  60. if(!obj[m]){
  61. newArr.push(arr[i]);
  62. obj[m] = true;
  63. }
  64. }
  65. return newArr;
  66. }
  67. console.log(only([6]));//[6]
  68. 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. (转)基于MVC4+EasyUI的Web开发框架经验总结(3)- 使用Json实体类构建菜单数据

    http://www.cnblogs.com/wuhuacong/p/3669708.html 最近花了不少时间在重构和进一步提炼我的Web开发框架上,力求在用户体验和界面设计方面,和Winform开 ...

  2. apiCloud组件:swiper

    一.apicloud中基于swiper封装了一个模块供调用.就是swiper.js 页面引入js就行 <script type="text/javascript" src=& ...

  3. Spring cloud公共模块

    1.0公共的模块是公共的工具包以及实体等 2.添加架包 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xs ...

  4. jQuery节点操作方法大全

    1.append() 向每个匹配的元素内部追加内容 HTML代码: <p>我想说:</p> jQuery代码: $('p').append('<b>你好</b ...

  5. 训练1-W

    有一个长度为n(n<=100)的数列,该数列定义为从2开始的递增有序偶数,现在要求你按照顺序每m个数求出一个平均值,如果最后不足m个,则以实际数量求平均值.编程输出该平均值序列. Input 输 ...

  6. keepalived实现IP地址高可用

    yum -y install keepalived vim /etc/keepalived/keepalived.conf global_defs { router_id LVS_DEVEL_ngin ...

  7. POJ 2184

    简单的01背包,把S看体积,把F看价值,把它们变正数处理就可以了.在处理负数时,因为减一个负数相当于加一个,所以要从前往后. #include <iostream> #include &l ...

  8. Blade - 腾讯开源的构建系统 c/c++编译环境

    ,Blade是软件project的利器.有助于模块化,模块化的力度控制自如.对于提高系统的可维护性.复杂性的隔离.代码复用的最大化.都有非常大的优点. 2,Blade提供了单元測试的最佳使用方式. 假 ...

  9. sedna载入xml文件

    如果有一个xml文件a.xml.须要把它载入到sedna数据库xml_db里. sedna是通过se_term把xml载入到数据库的.有两种方法: 1.通过se_term的-query參数. se_t ...

  10. Qt Installer Framework的学习(三)

    Qt Installer Framework的学习(三) Qt Installer Framework的样例中.通常是这种:config目录一般放了一个config.xml文件,包括的是安装配置xml ...