위쪽 정렬은 왼쪽 정렬과 비교했을 때 행과 열이 바뀝니다. 즉, i와 j가 반대입니다(여기도 마찬가지로 왼쪽 정렬과 다른 부분에 배경색을 표시했습니다).
case 'up': { // 위쪽 정렬
const newData = [[], [], [], []];
data.forEach((rowData, i) => {
rowData.forEach((cellData, j) => {
if (cellData) {
const currentRow = newData[j]
const prevData = currentRow.at(-1);
if (prevData === cellData) {
currentRow[currentRow.length - 1] *= -2;
} else {
newData[j].push(cellData);
}
}
});
});
console.log(newData);
[1, 2, 3, 4].forEach((cellData, i) => {
[1, 2, 3, 4].forEach((rowData, j) => {
data[j][i] = Math.abs(newData[i][j]) || 0;
});
});