У меня есть функция, где я удаляю некоторые части массива, используя .splice
, но когда я смотрю около console.log
на его длину, он не изменился .. и с hexdump я также видел, что «удаленная» строка все еще существуетArray.splice не меняет длину
eg
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
(значение, которое должно быть удалено происходит из другого вара, поэтому я написал часть с «IndexOf»)
Судоку является 3D Matrix: первого D анса второго D является x и y строк/столбцов, в то время как третье измерение для остальных возможностей
Что делать, чтобы удалить значение раз и навсегда?
, потому что у меня есть, если это необходимо знать длину моих Массивы ...
после того, как я бросил кучу дополнительной 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, но не решается мои проблемы в моем реальном коде ... иногда я видел «неопределенный» в моем коде .. но большая проблема в том, что он также оставил там шестнадцатеричные представления бинарного. .. так что длина, даже после того, как я прямо сказал ему, чтобы получить меньше, не изменилась ...
работ [здесь ] (http://jsfiddle.net/Badye/). Что такое «Hexdump»? Хм ... Вы изменили свой массив с 1D на 2D ... – Teemu
На самом деле это сейчас 3D, и я думаю, что в 'Array.indexOf (3) есть опечатка' ... – user1983983
Я изменил его, как будто он в мой код ... – Robin93K