繁体   English   中英

从 Javascript 对象中删除项目

[英]Remove Item from Javascript Object

我有一个从 sql 查询中获得的对象,我想删除其中的一个项目。 问题是,在我删除它之后,该项目没有信息,但它仍然存在:

<1 empty item>

所以我想知道是否有办法完全删除它并拥有一个只有我的数据的干净对象。”代码是在数据库中的两个玩家之间建立匹配,它曾经可以工作,但我必须验证被选中的玩家不是被排除在外的,因为他们很奇怪,我想要一个随机的被排除在外。所以我意识到简单地从对象中删除不打算参加比赛的玩家要容易得多. 我会留下孔码。

    let tournamentID = args[0];
    let categoryID = args[1];
    let tournamentSQL = 'SELECT * FROM tournaments WHERE tournamentID = ?';
    let tournamentData = [tournamentID];
    let matchesCreated = 0;
    con.query(tournamentSQL, tournamentData, function(err, result){
        if(err) throw err;
        let playersSQL = "SELECT * FROM players WHERE tournamentID = ?";
        if(result.length == 0){
            return message.channel.send('Ingresaste un TournamentID incorrecto');
        };
        if (result[0].modality > 1){
            return message.channel.send('Este torneo es por equipos, usa .partidosequipos');
        };
        let actualRound = result[0].actualRound + 1;
        con.query(playersSQL, tournamentData, function(err, resultPlayers){
            if(resultPlayers.length == 0){
                return message.channel.send('Este torneo no tiene jugadores.');
            };
            if(err) throw err;
            let roundPlayers = resultPlayers.length - 1;
            if(resultPlayers.length % 2 != 0){
                let player = Math.round(Math.random() * roundPlayers);
                console.log(player);
                message.channel.send(`La cantidad de jugadores en el torneo es impar, el jugador ${resultPlayers[player]} no jugará en esta ronda y ya clasificó a la siguiente`);
                delete resultPlayers[player];
                matchCreating(roundPlayers, resultPlayers, result, categoryID, client, message, actualRound);
            } else{
                matchCreating(roundPlayers, resultPlayers, result, categoryID, client, message, actualRound);
            }

希望我能够解释我自己。 感谢您的帮助。

您需要使用splice删除特定索引

var playersSQL = "SELECT * FROM players WHERE tournamentID = ?";
con.query(playersSQL, tournamentData, function(err, resultPlayers){
    if(resultPlayers.length % 2 != 0){
        let player = Math.round(Math.random() * roundPlayers);
        resultPlayers.splice(player, 1);
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM