##お題
・配列に別の配列の新たな数を追加していく
・新たな数は最後尾に順に足していく
function uniteUnique(arr) {
//write your code.
return newArr;
}
uniteUnique([1, 3, 2], [5, 2, 1, 4], [2, 1]) // [1, 3, 2, 5, 4]
##出力結果 例
([1, 3, 2], [1, [5]], [2, [4]]) // [1, 3, 2, [5], [4]]
([1, 2, 3], [5, 2, 1]) // [1, 2, 3, 5]
([1, 2, 3], [5, 2, 1, 4], [2, 1], [6, 7, 8]) // [1, 2, 3, 5, 4, 6, 7, 8]
##使ったもの
arguments
reduce()
concat()
indexOf()
slice()
##考え方
・Array.prototype.slice.call(arguments)で複数の引数を変数(args)にいれてまとめて扱う。
・reduce()でargsをはじめから順に比較していく。
・filterにてはじめの引数(arrA)にない値を次の引数(arrB)から選び、concatで付け足す。
・新たな値は新しく用意した変数に入れて、それを返しておわり
##コード
function uniteUnique(arr) {
var newArr;
var args = Array.prototype.slice.call(arguments);
newArr = args.reduce(function(arrA,arrB){
return arrA.concat(arrB.filter(function(i){
return arrA.indexOf(i) === -1;
}));
});
return newArr;
}
###他にもコードが浮かんだ方、コメントお待ちしております。