繁体   English   中英

json数组有一些问题

[英]Having some problems with a json array

exports.equipp = function(user, User, msg) {

    var itemname = msg.content.slice(8);

    User.find({id: user.id}, function(err, usser) {

        for(i = 0; i < usser[0].inventory.length; i++) {

            if (usser[0].inventory[i].name == itemname) {


                var Item = usser[0].inventory[i];

                for (j = 0; j < usser[0].equipped.length; j++) {

                    if (Item.type == usser[0].equipped[j].type) {

                    }
                    if (j == usser[0].equipped.length -1) {

                    }
                }
            } else {

                if (i == usser[0].inventory.length -1) {

                    msg.reply("You dont have that Item");

                }
            }
        }
    })
}

我在if (j == usser[0].equipped.length -1)的末尾有一些问题,它永远不会通过,因此也永远不会在空库存中添加任何项目。 我有一些atm仅包含Name,Dmg和Type im的项目,检查类型是否匹配,然后将它们添加到配备的阵列中,并将其从items阵列中删除,反之亦然,对于已配备的项目以及何时存在数组中没有该类型的项,我只需要添加它并从另一个数组中删除它,但是我的代码在上述json对象数组{“ type”:“ Healm”,“ armor”:4, “ name”:“入门级医疗”},

代替这个:

    for(i = 0; i < usser[0].inventory.length; i++) {
        if (usser[0].inventory[i].name == itemname) {
            var Item = usser[0].inventory[i];
            // rest of code ...
        } else {
            if (i == usser[0].inventory.length -1) {
                msg.reply("You dont have that Item");
            }
        }
    }

做:

    for(i = 0; i < usser[0].inventory.length; i++) {
        if (usser[0].inventory[i].name == itemname) {
            var Item = usser[0].inventory[i];
            // rest of code ...
        }
    }
    if (!Item) {
        msg.reply("You dont have that Item");
    }

是否找到物料的决定因素是您已定义Item 循环之后 ,您发现未设置Item ,您知道该项目不在列表中。 当列表为空时,这显然也适用。

暂无
暂无

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

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