【问题标题】:Steam trade-offer-manager get items info shortenSteam trade-offer-manager 获取项目信息缩短
【发布时间】:2015-11-02 13:14:14
【问题描述】:

我正在尝试构建一个新项目。 这将是一个网站的贸易机器人,现在将我收到的项目存储到我的数据库中,我希望每个项目都发送一些信息(名称,asseid,tradeid,...)。 以下代码有效。

offers.on('receivedOfferChanged', function (offer, oldState) {
logger.info(offer.partner.getSteam3RenderedID() + " Offer #" + offer.id + " changed: " + TradeOfferManager.getStateName(oldState) + " -> " + TradeOfferManager.getStateName(offer.state));

// Alert us when we accept an offer
if (offer.state == TradeOfferManager.ETradeOfferState.Accepted) {
    offer.getReceivedItems(function (err, items) {
        if (err) {
            logger.error("Couldn't get received items: " + err);
        } else {
            var names = items.map(function(item) {
                return item.name;
            });
            var assetids = items.map(function(item) { 
                return item.assetid; 
            });
            // Log a comma-separated list of items received
            logger.info("Received: " + names + " " + assetids.join(', '));
        }
    });
}
});`

但问题是,有什么办法可以缩短以下代码:

var names = items.map(function(item) {
            return item.name;
        });
        var assetids = items.map(function(item) { 
            return item.assetid; 
        });

所以它从数组中获取项目名称、资产ID、...并将它们存储在单独的变量中?

【问题讨论】:

    标签: javascript node.js steam steambot


    【解决方案1】:

    您可以使用push() 方法在一个循环中将值添加到两个数组中。试试:

    var names = [],
        assetids = [];
    
    items.forEach(function(item) {
        assetids.push(item.assetid); 
        names.push(item.name); 
    });
    

    【讨论】:

    • 这就像一个有魅力的人,谢谢你的快速回复!
    猜你喜欢
    • 1970-01-01
    • 2021-11-29
    • 1970-01-01
    • 1970-01-01
    • 2019-11-23
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多