请问,ES6集合(Set)去除重复为什么没有办法去除重复对象?

代码如下:

var arr = [1, 3, 19, 3, '3m', '11', '3', 20, {

            name: 'component',

            age: 18

        }, {

            name: 'component',

            age: 18

        }];


        function uniq(arr) {

            var tmp = new Set(arr);

            return Array.from(tmp)

        }


        console.time('去除重复');

        var ret = uniq(arr);

        console.timeEnd('去除重复');

        console.log(ret);

执行结果如下:

https://img2.mukewang.com/5be7ec22000191f201350210.jpg

备注: 
个人分析是:两个对象的地址不一样,所以导致没有去除

饮歌长啸
浏览 1441回答 1
1回答

阿波罗的战车

当两个值都是对象的时候,比较的是两个对象在内存中是否指向的是同一个对象。这也就是为什么{}!=={}的原因。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript