微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何检查未命名函数的返回情况

如何解决如何检查未命名函数的返回情况

我编写了以下代码

mp.events.addCommand("admin",(player,targetPlayer,targetAdminLevel) => {
  mp.players.forEach((targetPlayer2) => {
    if (targetPlayer2 === targetPlayer) return true;
    else return false;
  });
  try {
    if (player.adminLevel < 8) throw "Error 1.";
    if (!targetPlayer) throw "Error 2.";
    if (player.adminLevel <= targetAdminLevel) throw "Error 3.";
    //if (functionAbove = false) code
  }
});

我想知道如何检查mp.players.forEach函数是对还是错,因此可以将其添加到try语句中。谢谢。

我正在尝试检查是否有一个在线玩家,其名字在命令的第二个自变量中键入。示例:/ admin playerName。如果存在,则返回true并设置他的adminLevel;如果不是,则返回false。

我正在使用的功能https://wiki.rage.mp/index.php?title=Pool::forEach

解决方法

使用.some,.filter,.find代替forEach。如果您返回类似给定的内容:

array.some(obj=><condition>) //return boolean 

array.filter(obj=><condition>) //return array with all the elements which fulfills condition 

array.find(obj=><condition>) //return element

,

您可以遍历对象

const players = {
    player1 : 'Neimar',player2 : 'Carvalho',player3 : 'Ronaldinho'
}

for (const [key,value] of Object.entries(players)) {
    console.log(`${key}: ${value}`);
}

您可以根据需要设置条件。

,

这就是我想要做的:

global.findPlayer = function findPlayer(name) {
    let players = mp.players.toArray();
    for(let p in players) {
        if(players[p].name == name) {
            return players[p];
        }
    }
    return null;
}

if (findPlayer(targetPlayer)) //code;

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。