Я играю в шахматы.И я храню некоторые плитки шахматной доски для использования в моей программе в массиве.Проблема в том, что когда я обновляю значения в массиве и записываю их в консоль, я вижу правильные значения массива.Но после нажатия и проверки фактических значений в консоли массив отображает разные значения.
Я использую консоль Google Chrome.
Я уже видел другое переполнение стека, говорящее, что этоЭто известная «ошибка», но разработчики не будут ее исправлять, потому что на самом деле это не ошибка.
Вот что я вижу в консоли:
(2) ["a6", "a5"]
0: "`6"
1: "b6"
length: 2
__proto__: Array(0)
Как видите,значения в массиве, которые я вижу, отличаются от значений, которые хранятся в массиве.И это вызывает много других проблем в моей программе, которые зависят от содержимого этого массива.
Я хочу знать, является ли это распространенным явлением, а также есть ли какое-либо исправление.Или, может быть, некоторые сценарии, в которых происходят подобные случаи.
Кроме того, я все еще не уверен, для массива, показанного выше ^, являются фактические значения массива, значения, которые я вижу ("a6" и "a5"), или неверные значения, показанные внутри ("` 6 "и" b6 ").
Пожалуйста, помогите, если это не сработает, будет чрезвычайно трудно закончить проект, над которым я работаю.
Вот код, который я использую для обновления массива:
let moves = [];
if (tile.slice(1, 2) == 7 && b1.board[dd].piece == null && b1.board[d].piece == null) {
moves.push(d);
moves.push(dd);
}
if (tile.slice(1, 2) == 7 && b1.board[d].piece == null && b1.board[dd].piece != null) {
moves.push(d);
}
if (parseInt(tile.slice(1, 2)) > 1 && tile.slice(1, 2) != 7 && b1.board[d].piece == null) {
moves.push(d);
}
if (tile.charCodeAt(0) > 97 && parseInt(tile.slice(1, 2)) > 1 && b1.board[ld].piece != null && b1.board[ld].piece.slice(0, 1) == "w") {
moves.push(ld);
}
if (tile.charCodeAt(0) < 104 && parseInt(tile.slice(1, 2)) > 1 && b1.board[rd].piece != null && b1.board[rd].piece.slice(0, 1) == "w") {
moves.push(rd);
}
console.log(moves);
, просто для обеспечения некоторого контекста, я создаю массив, называемый move.Я помещаю значения в массив, основываясь на некоторых условиях.Затем я записываю массив на консоль, что я и показал выше.
Операторы if работают, потому что значения, которые я вижу в массиве, верны.Но, как вы знаете, после нажатия и проверки внутренних значений в консоли они становятся неправильными.
Результат, который я ожидаю получить от консоли:
(2) ["a6", "a5"]
0: "a6"
1: "a5"
length: 2
__proto__: Array(0)
Как это исправитьпроблема?