Sorted Union(arguments)
撰寫一個function,功用為return多個array中不重複的元素寫一個功能類似java中類似map資料結構的函數,要回傳多個array中不重複的元素。
function unite(arr1, arr2, arr3) {
return arguments[3];
}
unite([1, 2, 3], [5, 2, 1, 4], [2, 1], [6, 7, 8]);
function unite(arr1, arr2, arr3) {
return arguments;
}
unite([1, 2, 3], [5, 2, 1, 4], [2, 1], [6, 7, 8]);
//The outcome indicated below this line
arguments = { "0":[1,2,3],
"1":[5,2,1,4],
"2":[2,1],
"3":[6,7,8]
};
順道一提,arguments索取得的資料是用Object的key⇒value格式對應,像上面的codefunction unite(arr1, arr2, arr3) {
var arr = [];
for(var i=0;i<arguments.length;i++)
{
for(var j=0;j<arguments[i].length;j++)
{
if( arr.indexOf(arguments[i][j]) == -1 )
arr.push(arguments[i][j]);
}
}
return arr;
}
unite([1, 3, 2], [5, 2, 1, 4], [2, 1]);
unite([1, 2, 3], [5, 2, 1, 4], [2, 1], [6, 7, 8]);
Solution:
P.S. / Reference: 原來題目有提示可以用reduce()來做,就題目來說都需要訪問資料結構中每個元素,所以應該2個方法都行。
arguments
Array.prototype.reduce()