JavaScript相关,数组去重,目的无法实现,怎么回事

问题遇到的现象和发生背景

我在Java中写了一段去重的代码,能正常实现去重效果,但是在JavaScript中就无法实现了,怎么回事

问题相关代码,请勿粘贴截图

JavaScript代码:

    <script>
        Array.prototype.unique = function () {
            var array = Array();
            //创建一个新数组,用来存放不同的原数组元素
            var Count = 0 , count = 0 , i , j;
            /*
             * Count:创建新数组下标
             * count:计数器,记录重复元素出现的次数
             * i,j:数组下标
             */
            for (i = 0; i < this.length; i++) {
                for (j = 0 ; j < array.length ; j++) {
                    if (this[i] === array[j]) {
                        count++;
                        //两个数组遍历,进行比较,元素重复出现,次数+1
                    }
                }
                if (count === 0) {
                    array[Count] = this[i];
                    //只有不重复出现的元素,才插入到新数组中
                    Count++;
                    //此为新数组下标,保证元素相邻
                }
            }
            return array;
        }
        var array1 = [1 , 1 , 2 ,34 ,5 ,5 ,5 ,2];
        document.write(JSON.stringify(array1));
        document.write("<br/>" + JSON.stringify(array1.unique()));
    </script>

Java代码:

package test1;

import java.util.Arrays;

public class test6 {
    static Object[] unique(Object[] obj) {
        Object[] o = new Object[obj.length];
        int Count = 0 , count = 0 ,i , j;
        for (i = 0 ; i < obj.length ; i++) {
            for (j = 0 ; j < o.length ; j++) {
                if (obj[i] == o[j]) {
                    count++;
                }
            }
            if (count == 0) {
                o[Count] = obj[i];
                Count++;
            }
            count = 0;
        }
        return o;
    }

    public static void main(String[] args) {
        Object[] objects = {1 , 1 , 2 ,34 ,5 ,5 ,5 ,2};
        System.out.println(Arrays.toString(unique(objects)));
    }
}


运行结果及报错内容

Java运行结果:

img

JavaScript运行结果:

img

我的解答思路和尝试过的方法

代码基本一样,没做什么改动,无法实现不说,就打印一个是什么鬼,谁知道怎么回事

这是根据你的代码优化后的代码

<script>
        function quchong(arr) {
            var array = Array();
            //创建一个新数组,用来存放不同的原数组元素
            var Count = 0 ;
            var count = 0;
            /*
             * Count:创建新数组下标
             * count:计数器,记录重复元素出现的次数
             * i,j:数组下标
             */
            for (var i = 0; i < arr.length; i++) {
                for (var j = 0 ; j < array .length ; j++) {
                    if (arr[i] == array [j]) {
                        count++;
                        //两个数组遍历,进行比较,元素重复出现,次数+1
                    }
                }
                if (count == 0) {
                    array[Count] = arr[i];//只有不重复出现的元素,才插入到新数组中
                    //此为新数组下标,保证元素相邻
                    Count++;
                }
                count=0;
            }
            return array;
        }
        
    window.onload=function(){
        var array1 = [1 , 1 , 2 ,34 ,5 ,5 ,5 ,2,33,33];
        console.log(quchong(array1));
    }
        //document.write(JSON.stringify(array1));
        //document.write("<br/>" + JSON.stringify(array1.unique()));
    </script>

运行结果

img


如有帮助请采纳!!