问题描述
我正在尝试使所有棋盘上的棋子都存在。数组似乎已成功填充32个(对于起始位置有效)。但是,在交换机比较中,它仅找到3个。我正在使用img src参数来区分各个部分。 JS代码:
function SetupPieces()
{
var piecesObj = document.getElementsByClassName("chess_com_piece chess_com_draggable");
let imgSrc = [];
for(var i=0;i<piecesObj.length;i++)
{
imgSrc[i] = piecesObj[i].src.substring(60);
}
var Pieces = [],FirstPosition = [],SecondPosition = [],brookX,brookY,WRookX,WRookY,brook,WRook;
for(var i=0;i<imgSrc.length;i++)
{
var TempPieceLocObj = (piecesObj[i].style.transform).substring(10);
TempPieceLocObj = (TempPieceLocObj.substring(0,TempPieceLocObj.length - 1)).split(",");
FirstPosition[i] = (TempPieceLocObj[0].split("px"))[0];
SecondPosition[i] = (TempPieceLocObj[1].split("px"))[0];
console.log("Array size - " + imgSrc.length);
switch(imgSrc[i])
{
case "wp.png":
Pieces[i] = "White Pawn";
break;
case "bp.png":
Pieces[i] = "Black Pawn";
break;
case "br.png":
Pieces[i] = "Black Rook";
brook = (piecesObj[i].style.transform).substring(10);
brook = (brook.substring(0,brook.length - 1)).split(",");
brookY = parseInt(brook[1].substring(0,brook[1].length - 3),10) * 1.029684601113173;
brookX = parseInt(brook[0].substring(0,brook[1].length - 1),10) * 1.029684601113173;
break;
case "wr.png":
Pieces[i] = "White Rook";
WRook = (piecesObj[i].style.transform).substring(10);
WRook = (WRook.substring(0,WRook.length - 1)).split(",");
WRookY = parseInt(WRook[1].substring(0,WRook[1].length - 1),10) * 1.029684601113173;
WRookX = parseInt(WRook[0].substring(0,WRook[1].length - 3),10) * 1.029684601113173;
break;
case "bn.png":
Pieces[i] = "Black Knight";
break;
case "wn.png":
Pieces[i] = "White Knight";
break;
case "bb.png":
Pieces[i] = "Black Bishop";
break;
case "wb.png":
Pieces[i] = "White Bishop";
break;
case "wq.png":
Pieces[i] = "White Queen";
break;
case "bq.png":
Pieces[i] = "Black Queen";
break;
case "bk.png":
Pieces[i] = "Black King";
break;
case "wk.png":
Pieces[i] = "White King";
break;
}
}
if(WRookX !== 0) {BoardSize = WRookX;}
return [FirstPosition,SecondPosition,Pieces];
}
imgSrc数组中的片断-https://prnt.sc/uhrgxz
var testing = SetupPieces();
for(var i = 0; i<testing.length;i++)
{
console.log("X:" + testing[0][i] + " Y:" + testing[1][i] + " Name:" + testing[2][i]);
}
解决方法
testing
等于函数([FirstPosition,SecondPosition,Pieces]
)的返回,因此
testing.length
将为3。
您可能是说testing[2].length
,是pieces
?