자바 스크립트에 익숙하지 않아 약 한 달 동안 약 4 번이 질문을 시도했지만 아직 해결할 수 없습니다.Reduce를 사용하여 여러 개의 배열 비교하기
다음은 질문입니다. 입력 배열을 비교하고 모든 입력에있는 요소가있는 새로운 배열을 반환하는 함수 교차를 만듭니다. 보너스 : reduce!
형식은 다음과 같습니다
function intersection(arrays) {
// Your Code Goes Here
}
테스트 케이스 : 로그인해야 [15, 5]
console.log('Extensions 3 Test: ' + intersection([5, 10, 15, 20], [15, 88, 1, 5, 7]/*, [1, 10, 15, 5, 20]*/));
나의 현재 솔루션 : 비교하는 두 항목이 단지의 경우에 작동하지만,하지 세 번째의 경우, 루프를 통해 얻을 수있는 값을 다음 배열과 비교할 수 있도록 만들 수 있지만 올바른 경로에 있다고 생각하지는 않습니다 ... 또한 구현을 위해 reduce를 사용하지 않습니다. .. 그리고 나는 '논쟁'을 사용하기로되어 있는지 확실하지 않습니다. 어떤 도움을 주셔서 감사합니다! 정말 고맙습니다.
function intersection(arrays) {
array = [];
for (var i = 0; i < arguments.length; i++)
array.push(arguments[i]);
var result = [];
for(var i = 0; i < array.length - 1; i++) {
for(var j = 0; j < array[i].length; j++) {
if (array[i+1].includes(array[i][j]))
result.push(array[i][j]);
}
}
return result;
}
왜 'lodash'(또는 '밑줄')을 사용하지 않습니까? 자바 스크립트에서 이러한 험한 경로를 위해 바퀴를 재발견하는 것은 미친 듯이 보입니다. – chriskelly
@chriskelly : OTOH, 왜 그런 간단한 기능을 위해 그 중 하나를 드래그합니까? (그리고 나는 비슷한 라이브러리의 저자로서 저 자신을 말합니다.) –
모든 응답 녀석 들께 감사드립니다! D –