다음과 같은 구문의 참조 배열이 있다고 가정합니다. -
const reference = ["your", "majesty", "they", "are", "ready"];
그리고 다른 배열을 기반으로 위 배열의 일부 요소를 결합해야 하므로 다른 배열이 다음과 같을 경우 -
const another = ["your", "they are"];
결과는 다음과 같습니다 -
result = ["your", "majesty", "they are", "ready"];
여기서는 두 배열의 요소를 비교하고 첫 번째 배열의 요소가 두 번째 배열에 함께 존재하는 경우 결합했습니다.
우리는 그러한 두 개의 배열을 취하고 새로운 결합된 배열을 반환하는 JavaScript 함수를 작성해야 합니다.
예시
const reference = ["your", "majesty", "they", "are", "ready"]; const another = ["your", "they are"]; const joinByReference = (reference = [], another = []) => { const res = []; const filtered = another.filter(a => a.split(" ").length > 1); while(filtered.length) { let anoWords = filtered.shift(); let len = anoWords.split(" ").length; while(reference.length>len) { let refWords = reference.slice(0,len).join(" "); if (refWords == anoWords) { res.push(refWords); reference = reference.slice(len,reference.length); break; }; res.push(reference.shift()); }; }; return [...res, ...reference]; }; console.log(joinByReference(reference, another));
출력
이것은 다음과 같은 출력을 생성합니다 -
[ 'your', 'majesty', 'they are', 'ready' ]