zoukankan      html  css  js  c++  java
  • js 删除数组中重复元素

    我现在大三。前几天做了一下阿里巴巴春季面试题,其中有一道是:编写一个函数,传入一个数组,如果有相同的元素,删除元素。返回数组

    思考了一下,我的步骤很简单

    (1)先把数组排序。

    (2)如果第i个和i+1个相同,则删掉其中一个元素就可以了

    先贴代码如下:

    function delRepeat(arr){
      arr.sort(function(a,b){
        return a>b? 1:-1;
      });


      for(var i = 0;i<arr.length;i++){
        if(arr[i] === arr[i+1]){
          arr.splice(i,1);
        }
      }
      return arr;
    }

    分析:利用数组方法 sort().但是sort()方法不能准确按照数字大小返回,因为这个方法是按照字典序排列。所以return a>b? 1:-1;这一句来保证数组从小到大排列。

      接下来判断如果第i个和i+1个相同,则用数组的splice()方法。第一个参数是删除元素的开始位置,第二个参数是删除的个数。(返回一个包含被移除元素的数组)。

      好了,这样就简单实现了。

    示例:       var arr = [1,23,4,32,4];

    浏览器返回:  delRepeat(arr);

            [1, 4, 23, 32]

    问题:如果题目要求不能排序,怎么做我就没思路了…………

  • 相关阅读:
    基于python实现自动化办公学习笔记一
    [django]上下文管理器
    [django]中间件
    分布式锁实现
    为什么Redis可以方便地实现分布式锁
    索引字段说明
    COUNT 和 IFNULL函数
    占用空间区别
    java排序算法(七):折半插入排序
    java排序算法(六):直接插入排序
  • 原文地址:https://www.cnblogs.com/yanpu/p/4557568.html
Copyright © 2011-2022 走看看