JavaScript 数组去重

186 阅读1分钟

JavaScript去除数组中重复的元素

js代码

    <script>
        a = [1, 2, 3, 4, 5, 6, 5, 5, 6]//测试数组
        var removeSame = function (arr) {

            for (let i = 0; i < arr.length; i++) {
                for (let j = i + 1; j < arr.length; j++) {
                    if (arr[i] == arr[j]) {
                        arr.splice(j, 1)
                        i--   //splice会改变原数组,arr[i]变成了下一个数,所以需要i--
                    }
                }
            }
            return a
        }

        console.log(removeSame(a));
    </script>

splice(m,n)方法可以删除数组中序列为m开始的n个元素 将数组第一个元素开始与其后面所有的元素相比较,如果出现相同的元素则删除后一个 直到整个循环结束

                    if (arr[i] == arr[j]) {
                        arr.splice(j, 1)
                        j--   //splice会改变原数组,arr[j]变成了下一个数,所以需要j--
                    }

因为splice方法会改变原数组,删除之后 arr[ j ] 变成了下一个数,所以需要把序列号往前移(j--)

测试用例:

 a = [1, 2, 3, 4, 5, 6, 5, 5, 6]//测试数组
console.log(removeSame(a));

结果:

image.png