我已經重新創建的foreach +地圖+減少功能JS:如何使用reduce函數在javascript函數式編程中查找一組數組之間的交集/並集?
function forEach(array, callback) {
for (var i=0;i<array.length;i++) {
callback(array[i])
}
}
function mapWith(array, callback) {
var output= [];
forEach(array , function(el){
return output.push(callback(el))
});
return output;
}
function reduce(array, callback, initialValue) {
mapWith(array, function(el){
return initialValue = callback(initialValue, el);
})
return initialValue;
}
現在我會怎麼用降低找到一組陣列之間的交集?
function intersection(arrays) {
}
// console.log(intersection([5, 10, 15, 20], [15, 88, 1, 5, 7], [1, 10, 15, 5, 20]));
// should log: [15, 5]
此外,我將如何比較輸入數組並返回一個包含所有元素的新數組。如果有重複的元素,只添加一次到新的數組。從第一個輸入數組的第一個元素開始的元素的順序被保留。
function union() {
}
// console.log(union([5, 10, 15], [15, 88, 1, 5, 7], [100, 15, 10, 1, 5]));
// should log: [5, 10, 15, 88, 1, 7, 100]
FWIW,來源於http://csbin.io/callbacks –