Sorted Union
写一个 function,传入两个或两个以上的数组,返回一个以给定的原始数组排序的不包含重复值的新数组。
换句话说,所有数组中的所有值都应该以原始顺序被包含在内,但是在最终的数组中不包含重复值。
非重复的数字应该以它们原始的顺序排序,但最终的数组不应该以数字顺序排序。
请参照下面验证判断中的例子。
如果你被卡住了,记得开大招 Read-Search-Ask。尝试与他人结伴编程、编写你自己的代码。
这是一些对你有帮助的资源:
function unite(arr1, arr2, arr3) { var args = Array.from(arguments); var arr = args.reduce(function(a,b){ return a.concat(b); }); //var nArr = args.reduce(function(curr,array){}); var array = Array.from(new Set(arr)); return array; } unite([1, 3, 2], [5, 2, 1, 4], [2, 1]);
利用了ES6的Set这一特性
function unite(arr1, arr2, arr3) { var args = Array.from(arguments); var arr = args.reduce(function(a,b){ return a.concat(b); }); //[1,3,2,5,2,1,4,2,1] //var nArr = args.reduce(function(curr,array){}); //var array = Array.from(new Set(arr)); //return array; var array = arr.filter(function(item,index,arra){ return arr.indexOf(item)===index; }); return array; } unite([1, 3, 2], [5, 2, 1, 4], [2, 1]);
思路就是将参数数组放到一个数组中然后去重