Я хотел создать небольшое приложение, которое могло бы проверять массивы на предмет пересекающихся значений и уменьшать эти массивы в новом только с пересекающимися числами. Я смог выполнить sh, используя встроенные методы-прототипы, но хотел сделать это с помощью своих собственных определенных функций.
const forEach = (array, callback) => {
for (var i = 0; i < array.length; i++) {
callback(array[i])
}
}
const reduce = (array, callback, initValue) => {
accumulator = initValue
const reduceFunction = (el) => {
accumulator += callback(el)
}
forEach(array, reduceFunction)
return accumulator
}
const intersectionWithReduce = (...arrays) => {
currentValue = []
reduce(arrays, el => currentValue += arrays.filter(currentValue.includes(el)), currentValue)
return currentValue
}
console.log(intersectionWithReduce([1, 2, 3, 20], [15, 88, 1, 2, 7], [1, 10, 3, 2, 5, 20]));
// expected output of [1,2]
// actual output TypeError: false is not a function
Поскольку из currentValue возвращается false
, я запутался и признаю, что в последнее время, чем больше я смотрю на это, тем больше я чувствую, что мои решения не имеют смысла , Чего мне не хватает, чтобы моя функция приведения работала в этом контексте.