第一种方法:先排序,然后第一个数字跟第二个数字相比,如果相等就删除一个。循环

    1. let str = [ ]; //创建一个空数组
    2. arr.sort((a, b) => a - b)
    3. for (let i = 0; i < arr.length; i++) {
    4. if (arr[i] == arr[i + 1]) {
    5. arr.splice(i, 1)
    6. i--
    7. } else {
    8. str.push(arr[i])
    9. }
    10. }

    第二种方法:利用顺序和倒序的方法,验证数字的下标是否相等,如果相等表示没有重复。

    1. for (let i = 0; i < arr.length; i++) {
    2. if (arr.indexOf(arr[i]) != arr.lastIndexOf(arr[i])) { // arr[i]:表示第几个数 ,indexOf(arr[i])表示第 i 个数的下标
    3. arr.splice(i, 1);
    4. i--;
    5. }
    6. }

    第三种:先排序,然后利用前一个数,减后一个数,判断值为多少。等于0。表示有重复。

    1. arr.sort((a, b) => a - b)
    2. for (let i = 0; i < arr.length; i++) {
    3. for (let j = i + 1; j < arr.length; j++) {
    4. if (arr[i] - arr[j] == 0) {
    5. arr.splice(j, 1);
    6. i--;
    7. }
    8. }
    9. }

    第四种:利用indexOf 的查找功能,如果里面没有那个数。会返回一个值 -1。同时将没有的那个数加到新数组

    1. let newArr = [ ]; // 创建一个新的数组
    2. for (let i = 0; i < arr.length; i++) {
    3. if (newArr.indexOf(arr[i]) == -1) { // arr[i]( item 相等 ):表示arr数组里面的第 i 个数。 indexOf 会有索引值,
    4. 索引值就是查找数的下标。
    5. newArr.push(arr[i]); // 查找不到就返回-1
    6. }
    7. }

    第五种方法:利用筛选功能,如果是true 就会有一个返回值。

    1. let newArr = arr.filter((item,index)=>arr.indexOf(item)==index)
    2. //arr.indexOf(item):表示item的下标,index表示的也是下标
    3. // 当有重复的值时,数字的下标跟他本身的下标一定不会相等。就是flase
    4. //如果是true 值,会返回给 newArr 数组

    最常用的方法:利用Set 直接去掉重复的

    1. let arr = [1,2,3,5,2,6,5,3,4,5,6];
    2. let s = new Set(arr); // 将数组放进Set 里面,进行去重 构造函数
    3. console.log(s);
    4. let newArr = [...s]; //Set 对象结构,转换为数组
    5. console.log(newArr); // [1,2,3,4,5,6]