【发布时间】:2013-08-19 11:59:43
【问题描述】:
我有一个函数,我使用.splice 删除数组的某些部分,但是当我查看console.log 的长度时,它并没有改变.. 使用 hexdump 我还看到“已删除”字符串还在吗
例如
Sudoku[j][y] = [3, 7]
Sudoku[x][y][k] = 3
function...
Sudoku[j][y].splice(Sudoku[j][y].indexOf(Sudoku[x][y][k]), 1)
console.log(Sudoku[j][y], Sudoku[j][y].length, Hexdump.dump(Sudoku[j][y]))
= [7] 2 /*Zusammenfassung des hex:*/ 3, 7
(要删除的值来自另一个var,这就是为什么我用“indexOf”写的部分)
数独是一个 3D 矩阵:第一个 D 和第二个 D 是 x 和 y 行/列,而第三个维度是其余的可能性
我该怎么做才能一劳永逸地删除该值?
因为我有一个 IF 需要知道我的数组的长度...
在我将一堆更多的 console.log 放入我的代码之后,我也看到了这些东西...... 有时...
console.log(sudoku[j][y].length, sudoku[j][y], sudoku[j][y].indexOf(sudoku[x][y][k]))
sudoku[j][y].splice(sudoku[j][y].indexOf(sudoku[x][y][k]), 1);
console.log(sudoku[j][y].length, sudoku[j][y])
结果成:
4 [7, 9] 0
3 [7, 9]
所以我最近的尝试是使用一种新方法而不是拼接:
sudoku[x][j][(sudoku[x][j].indexOf(sudoku[x][y][k]))]=sudoku[x][j][sudoku[x][j][sudoku[x][y].length-1]]
sudoku[x][j].length--
它在 jsfiddle 中工作,但在我的真实代码中没有解决我的问题...... 有时我在我的代码中看到“未定义”.. 但更大的问题是它也将 hexdumps 留在了那里......所以即使我直接说他变小,长度也没有改变......
【问题讨论】:
标签: javascript arrays splice hexdump