자바스크립트 - 전치 행렬 구하기 (Transpose 2D Array)
자바스크립트 전체 링크 다음과 같은 원본 배열이 있다고 가정하자. const originalArray = [ [1, 2, 3, 4, 5, 6], [7, 8, 9, 10, 11, 12], [13, 14, 15, 16, 17, 18], ]; 이 배열을 전치(transpose)해서 아래의 배열을 얻어보자. [ [ 1, 7, 13 ], [ 2, 8, 14 ], [ 3, 9, 15 ], [ 4, 10, 16 ], [ 5, 11, 17 ], [ 6, 12, 18 ] ] 코드는 다음과 같다. const transpose = (array) => { const rows = array.length; const cols = array[0].length; const transposedArray = []; for (let j ..
2024. 4. 10.
자바스크립트 - 2차원 배열 빈 행 / 열 추가, 삭제하기
자바스크립트 전체 링크 다음과 같은 배열에 빈 행/열을 추가하거나 삭제해보자. 주어지는 배열의 모든 행의 길이는 같다고 가정한다. const myArray = [ [1, 2, 3, 4, 5, 6, 7], [8, 9, 10, 11, 12, 13, 14], [15, 16, 17, 18, 19, 20, 21], [22, 23, 24, 25, 26, 27, 28], [29, 30, 31, 32, 33, 34, 35], ]; 행 추가 table의 rowIndex 부터 amount 만큼 행을 추가하는 메서드는 다음과 같다. emptyArray로 table row의 length만큼 빈 문자열로 이루어진 배열을 만들어서 추가하였다. const insertRows = (table, rowIndex, amount) => ..
2024. 4. 10.
자바스크립트 - 길이가 같은 두 배열을 합치기 (Zip Array using Currying)
자바스크립트 전체 링크 길이가 같은 배열을 쌍으로 만들고 싶은 경우, 커링을 이용해서 배열을 합쳐보자. const zip = (...left) => (...right) => { return left.map((item, i) => [item, right[i]]); }; let arr1 = [1, 2, 3]; let arr2 = ["A", "B", "C"]; let result = zip(...arr1)(...arr2); console.log(result); // [ [ 1, 'A' ], [ 2, 'B' ], [ 3, 'C' ] ]
2024. 3. 15.
자바스크립트 - 2차원 배열에서 중복된 행 제거하기
자바스크립트 전체 링크 중복된 행을 체크해서 제거한다. const removeDuplicateRows = (array) => { // 중복 체크 let uniqueRows = {}; // 중복되지 않은 행만 포함하는 새로운 배열 let result = array.filter(function (row) { let rowStr = row.join(","); if (!uniqueRows[rowStr]) { uniqueRows[rowStr] = true; return true; } return false; }); return result; }; var array2D = [ [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], [11, 12, 13, 14, 15, 16, 17, 18, 19, 20], [1,..
2024. 3. 7.
자바스크립트 - 객체에 존재하는 속성만 덮어쓰기
자바스크립트 전체 링크 객체 obj1, obj2가 있다. let obj1 = { a: "a1", b: "b1", c: "c1", d: "d1", e: "e1", f: "f1", g: "g1", }; let obj2 = { a: "a2", b: "b2", g: "g2", h: "h2", }; obj2의 값을 obj1으로 복사할 때, obj2의 속성이 obj1에 존재하는 경우만 복사하자. . hasOwnProperty를 이용하면 간단하다. for (let key in obj1) { if (obj2.hasOwnProperty(key)) { obj1[key] = obj2[key]; } } 전체 코드는 다음과 같다. let obj1 = { a: "a1", b: "b1", c: "c1", d: "d1", e: "e..
2023. 9. 2.