Javascript 函数,该函数访问从数组中拾取的对象并将其返回以修改属性

Javascript 函数,该函数访问从数组中拾取的对象并将其返回以修改属性,javascript,function,object,return,return-value,Javascript,Function,Object,Return,Return Value,我得到了这个重复块,它通过一些数组选择当前的播放器 我想要一个函数,允许我访问播放器对象并编辑某些属性 所以我想要这个: for (let i = 0; i < Room_Array.length; i++) { if (Room_Array[i][0] === PlayerObject[socket.id].RoomName) { for (let j = 0; j < Room_Array[i][2].length; j++) {

我得到了这个重复块,它通过一些数组选择当前的播放器 我想要一个函数,允许我访问播放器对象并编辑某些属性

所以我想要这个:

for (let i = 0; i < Room_Array.length; i++) {
    if (Room_Array[i][0] === PlayerObject[socket.id].RoomName) {
        for (let j = 0; j < Room_Array[i][2].length; j++) {
            if (Room_Array[i][2][j].SocketID === PlayerObject[socket.id].SocketID) {
                Room_Array[i][2][j].IsSuspended = PlayerObject[socket.id].IsSuspended;
                break;
            }
        }
        break;
    }
}
for(设i=0;i
要像这样使用:
PlayerPicked.issspended=0;//值不重要
无需多次写入块。

我找到了自己的答案。 这就是功能:

function Player_Return_BySocketID (P_Room_Array, P_RoomName, P_SocketID)
{
    for (let i = 0; i < P_Room_Array.length; i++)
    {
        if (P_Room_Array[i][0] === P_RoomName)
        {
            for (let j = 0; j < P_Room_Array[i][2].length; j++)
            {
                if (P_Room_Array[i][2][j].SocketID === P_SocketID)
                {
                    return P_Room_Array[i][2][j];
                }
            }
        }
    }
}
因此,PlayerPicked可以访问p_Room_Array[i][2][j]
所具有的所有属性

PlayerPicked = Player_Return_BySocketID(Room_Array, PlayerObject[socket.id].RoomName, PlayerObject[socket.id].SocketID);
PlayerPicked.SuspendedStatus = PlayerObject[socket.id].SuspendedStatus;