我已经重新创建的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 –