JS——实现数组去重的方法

发布于:2023-01-20 ⋅ 阅读:(11) ⋅ 点赞:(0) ⋅ 评论:(0)

 

文章目录

一、利用数组方法 indexOf( )

indexOf( )

indexof(参数1,参数2)该方法可以检索一个字符串中是否含有指定内容,参数1——如果字符串中含有该内容,则会返回第一次出现的 索引号,    如果没有,则返回  -1  参数2——可以指定开始查找的位置。

代码示例:

   // 方法二: 使用 indexOf
        var other = [1, 3, 5, 2, 1, 4, 3, 1, 2, 5, 3, 1, 2, 1];
        var otherArray = [];
        for (var i = 0; i < other.length; i++) {
            // 利用数组的indexOf方法,当数组内无此元素时返回-1,否则返回该元素在数组中的索引值
            if (otherArray.indexOf(other[i]) === -1) {
                otherArray.push(other[i]);
            }
        }
        console.log(otherArray);

二、利用数组方法 includes( )

includes( )

includes() 方法用于判断字符串是否包含指定的子字符串。

如果找到匹配的字符串则返回 true,否则返回 false。

注意: includes() 方法区分大小写。

代码示例:

 // 方法三: 使用includes
        var one = [1, 3, 5, 2, 1, 4, 3, 1, 2, 5, 3, 1, 2, 1];
        var two = [];
        for (var i = 0; i < one.length; i++) {
            // 利用数组的includes方法,测试该数组中是否有该值,若有则返回true,否则返回false
            if (!two.includes(one[i])) {
                two.push(one[i]);
            }
        }
        console.log(two);

三、借用冒泡排序

冒泡排序示例图:

的基本思想是:对比相邻的元素值,如果满足条件就交换元素值,把较小的元素值移动到数组前面,把大的元素值移动到数组后面(也就是交换两个元素的位置),这样数组元素就像气泡一样从底部上升到顶部。

 代码示例:

注意:不过本题中并未使用到第三方变量进行变量交换,只需要将重复的元素从数组中删除即可。

  // 创建数组并完成初始化
        var arr = [1, 3, 5, 2, 1, 4, 3, 1, 2, 5, 3, 1, 2, 1];
        // 遍历数组并加以条件判断
        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--;
                }
            }
        }
        console.log(arr);