数组去重--解决自动替补

2019-01-10  本文已影响6人  这是这时

数组去重

 <script>
    var arr = [1, 1, 2, 1, '2', '1', 3, 3, 7, 6, 8, 6, 9, 4, 1, 7, 4, 9]
    // 先遍历一组数组,把数组中所有的元素取出来
    for (var i = 0; i < arr.length; i++) {
        // 把该元素的后面的元素取出来做对比
        for (var j = i + 1; j < arr.length; j++) {
            // 循环判断当前元素和后面的每一个元素是否相等
            if (arr[i] == arr[j]) {
                // 如果相等,证明了出现了相同的元素,就要删除后面的元素j 
                arr.splice(j, 1);
                //  当删除了当前j所在元素的位置后,后面的元素自动补位,自动补位的位置可能和删除的元素相同!
                //  所以我需要在比较一次删除的位置,让j--  只要满足了两个数相等,就会删除后面的数,
                //  删除了后再来比较一次这个位置的数
                j--;
                // 只有删除了一个元素后,才会减减
            }
        }
    }
    console.log(arr)
</script>

答案:
Array(8)
0: 1
1: 2
2: 3
3: 7
4: 6
5: 8
6: 9
7: 4
length: 8

上一篇 下一篇

猜你喜欢

热点阅读