SQL JOIN과 유사하게 공통 키를 기반으로 두 개의 JavaScript 배열을 결합하는 방법
JavaScript에서 데이터를 처리할 때 다음이 가능합니다. 관련 정보가 포함된 여러 배열이 있고 이를 공통 속성을 기반으로 결합하려는 상황이 발생합니다. 이러한 맥락에서 SQL JOIN 작업은 여러 테이블의 데이터를 병합하는 데 유용할 수 있으며 배열 조작 기술을 사용하여 JavaScript에서 유사한 기능을 달성할 수 있습니다.
userProfiles와 질문이라는 두 개의 배열이 있다고 가정해 보겠습니다. userProfiles에는 id 및 name 속성이 있는 개체가 포함되어 있고, questions에는 id, text 및 CreateBy 속성이 있는 개체가 포함되어 있습니다. 문제의 CreateBy 속성은 userProfiles의 id 값에 해당합니다.
우리의 목표는 이러한 배열을 "결합"하여 id, text 및 name 속성이 있는 개체를 포함하는 새 배열을 만드는 것입니다. SQL에서 이 작업은 다음 쿼리로 표현됩니다.
SELECT u.id, q.text, u.name FROM userProfiles u JOIN questions q ON q.createdBy=u.id
JavaScript에서는 Reduce() 및 concat() 메서드를 사용하여 조인을 구현할 수 있습니다. 다음은 innerJoin 함수를 사용하는 예입니다.
const innerJoin = (xs, ys, sel) => xs.reduce((zs, x) => ys.reduce((zs, y) => // cartesian product - all combinations zs.concat(sel(x, y) || []), // filter out the rows and columns you want zs), []);
이 함수를 사용하면 다음과 같이 조인을 수행할 수 있습니다.
const result = innerJoin(userProfiles, questions, ({id: uid, name}, {id, text, createdBy}) => createdBy === uid && {id, text, name});
이 innerJoin 함수는 기본적으로 두 배열의 데카르트 곱을 수행합니다. , 각 개체 쌍에 대해 질문의 CreateBy 속성이 userProfiles의 id 속성과 일치하는지 확인합니다. 일치하는 경우 원하는 속성을 가진 개체를 반환합니다.
결과 결과 배열에는 다음 형식의 개체가 포함됩니다.
{ id, text, name }
이 접근 방식을 사용하면 여러 배열의 데이터를 결합할 수 있습니다. SQL JOIN 작업과 유사한 공통 키를 기반으로 합니다. JavaScript의 배열 조작 기능을 활용하면 애플리케이션에 대한 효율적이고 유연한 데이터 변환을 달성할 수 있습니다.
위 내용은 두 개의 JavaScript 배열에서 SQL과 유사한 JOIN을 수행하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!