removeColumns
두 개의 인수를 받는 함수 를 작성합니다 .
originalGrid
(2 차원 배열)
numColums
(번호)
removeColumns
올바른 수의 열이 제거 된 새 그리드를 반환해야합니다. 경우 numColumns
= 1, 하나의 열을 제거한다. numColumns
= 2 인 경우 두 개의 열을 제거하십시오.
removeColumns([[1, 2, 3],
[1, 2, 3],
[1, 2, 3],
[1, 2, 3]], 2);
/* => [[1],
[1],
[1],
[1]]
*/
나는 시도했다 :
function removeColumns (originalGrid, numColumns) {
let newGrid = [];
//if numColumns = 1, remove 1 column
for (let col = 0; col < originalGrid.length; col ++)
if (numColumns === 1) {
newGrid.pop(col)
}
//if numColums = 2, remove 2 columns
else if (numColumns === 2) {
newGrid.pop(col + 1)
}
return newGrid;
}
그리고 이것에는 몇 가지 문제가 있습니다.
하나의 배열에서 마지막 항목을 제거하는 방법을 이해합니다.
function removeItem(array) {
let poppedArray = array.pop();
return array;
}
그러나 그리드에서 세 개의 연속 배열을 반복하고 세 가지 모두에서 마지막 항목을 제거하는 방법을 이해하지 못합니다.
[1, 2, 3]
[1, 2, 3]
[1, 2, 3]
하나의 열을 제거하는 방법에 대한 개념을 이해하면 두 개의 열을 제거하는 방법을 이해할 것입니다.
편집 : 코드 펜에 연결
해결 방법 :
function removeColumns(originalGrid, numColumns) {
for (let i = 0; i < originalGrid.length; i++) {
let row = originalGrid[i];
row.reverse();
row.splice(0, numColumns);
row.reverse();
}
return originalGrid;
}
이렇게 numColumns
하면 배열의 시작 부분에서 " "개의 요소를 제거 할 수 있습니다 . 왜냐하면 .splice()
항상 왼쪽에서 오른쪽으로 요소를 제거 하기 때문입니다 (배열 뒤에서 스 플라이 싱을 시작하더라도).
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다