@xunuo
2020-03-07T22:41:23.000000Z
字数 609
阅读 780
面试题
题目要求
创建一个函数,接受两个或多个数组,返回所给数组的对等差分(symmetric difference) (△or⊕)数组.
如:给出两个集合 (如集合 A = {1, 2, 3} 和集合 B = {2, 3, 4}), 而数学术语 “对等差分” 的集合就是指由所有只在两个集合其中之一的元素组成的集合(A △ B = C = {1, 4}). 对于传入的额外集合 (如 D = {2, 3}), 你应该按照前面原则求前两个集合的结果与新集合的对等差分集合 (C △ D = {1, 4} △ {2, 3} = {1, 2, 3, 4}).
数组去重的方法
说明1:Array.prototype表示 Array 构造函数的原型,并允许你向所有Array对象添加新的属性和方法。
如:为数组添加second()方法,表示查找数组的第二个元素,其实现方法为:
Array.prototype.second = function(){return this[1]};
1.Es6中通过Set去重
Array.prototype.Distinct = function() { // 数组去重方法
var arr = Array.from(new Set(this));
console.log(this+"去重后:"+arr);
return arr;
};
缺点1:对于不兼容Es6语法的浏览器来说就不能使用(如IE8....)
缺点2:还不能去除"{}"空对象
2.利用双重for循环然后使用splice()方法去重(ES5中最常用)