다음과 같은 숫자 배열의 배열이 있다고 가정합니다. -
const arr = [[1, 45], [1, 34], [1, 49], [2, 34], [4, 78], [2, 67], [4, 65]];
각 하위 배열은 엄격하게 두 개의 요소를 포함해야 합니다. 유사한 첫 번째 값을 가진 하위 배열의 모든 두 번째 요소가 함께 그룹화되는 새 배열을 구성하는 함수를 작성해야 합니다.
따라서 위의 배열의 경우 출력은 다음과 같아야 합니다. -
const output = [ [45, 34, 49], [34, 67], [78, 65] ];
Map()을 사용하여 필요한 배열을 구성하는 Array.prototype.reduce() 메서드를 사용할 수 있습니다.
따라서 이 함수의 코드를 작성해 보겠습니다 -
예시
이에 대한 코드는 -
const arr = [[1, 45], [1, 34], [1, 49], [2, 34], [4, 78], [2, 67], [4, 65]]; const constructSimilarArray = (arr = []) => { const creds = arr.reduce((acc, val) => { const { map, res } = acc; if(!map.has(val[0])){ map.set(val[0], res.push([val[1]]) - 1); }else{ res[map.get(val[0])].push(val[1]); }; return { map, res }; }, { map: new Map(), res: [] }); return creds.res; }; console.log(constructSimilarArray(arr));
출력
콘솔의 출력은 -
[ [ 45, 34, 49 ], [ 34, 67 ], [ 78, 65 ] ]