創建一個函數,接受兩個或多個數組,返回所給數組的 對等差分(symmetric difference) (△ or ⊕)數組. 創建一個函數,接受兩個或多個數組,返回所給數組的 對等差分(symmetric difference) (△ or ⊕)數組. 給出兩個集合 (如集合 A = {1, 2, ...
創建一個函數,接受兩個或多個數組,返回所給數組的 對等差分(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}).
當你遇到困難的時候,記得查看錯誤提示、閱讀文檔、搜索、提問。
這是一些對你有幫助的資源:
- sym([1, 2, 3], [5, 2, 1, 4]) 應該返回 [3, 4, 5].
- sym([1, 2, 3], [5, 2, 1, 4]) 應該只包含三個元素.
- sym([1, 2, 5], [2, 3, 5], [3, 4, 5]) 應該返回 [1, 4, 5]
- sym([1, 2, 5], [2, 3, 5], [3, 4, 5]) 應該只包含三個元素.
- sym([1, 1, 2, 5], [2, 2, 3, 5], [3, 4, 5, 5]) 應該返回 [1, 4, 5].
- sym([1, 1, 2, 5], [2, 2, 3, 5], [3, 4, 5, 5]) 應該只包含三個元素.
- sym([3, 3, 3, 2, 5], [2, 1, 5, 7], [3, 4, 6, 6], [1, 2, 3]) 應該返回 [2, 3, 4, 6, 7].
- sym([3, 3, 3, 2, 5], [2, 1, 5, 7], [3, 4, 6, 6], [1, 2, 3]) 應該只包含五個元素.
- sym([3, 3, 3, 2, 5], [2, 1, 5, 7], [3, 4, 6, 6], [1, 2, 3], [5, 3, 9, 8], [1]) 應該返回 [1, 2, 4, 5, 6, 7, 8, 9].
- sym([3, 3, 3, 2, 5], [2, 1, 5, 7], [3, 4, 6, 6], [1, 2, 3], [5, 3, 9, 8], [1]) 應該只包含八個元素.
1 function sym(args) { 2 var arr = []; 3 var newArr = []; 4 for(var i = 0; i < arguments.length; i++){ 5 arr.push(arguments[i]); 6 } 7 8 arr = arr.reduce(function(a,b){ 9 return a.filter(function(element){ 10 return b.indexOf(element) == -1; 11 }).concat(b.filter(function(element){ 12 return a.indexOf(element) == -1; 13 })); 14 }); 15 16 arr = arr.filter(function(element,index,array){ 17 return array.indexOf(element) == index; 18 }); 19 20 return arr; 21 } 22 23 sym([3, 3, 3, 2, 5], [2, 1, 5, 7], [3, 4, 6, 6], [1, 2, 3], [5, 3, 9, 8], [1]);//1,2,2,3,3,4,5