例如,我有一个这样的数组:
const arr = [
[1, 2, 8],
[8, 5, 6],
[7, 8, 9]
];
我想把数字8像掉下来一样从下往上移。例如:
const arr = [
[null, null, null],
[1, 2, 6],
[7, 5, 9]
];
稍后我将替换空值。
从下到上遍历数组,然后在每行上进行内循环。如果您找到的当前项是8 -,则将同一行中的所有先前项向下移一个位置,并在该位置为第一行设置null。
const arr = [
[1, 2, 8],
[8, 5, 6],
[7, 8, 9]
];
for (let i = arr.length - 1; i >= 0; --i) {
for (let j = 0, l = arr.length; j < l; ++j) {
if (arr[i][j] == 8) {
for (let k = i; k > 0; --k) {
arr[k][j] = arr[k - 1][j];
}
arr[0][j] = null;
}
}
}
console.log(JSON.stringify(arr));