0

一个问题,如果你有多个物品,我怎么才能让它显示为“钓鱼竿(3)”?<<将 3 更改为表示项目数

因为如果嵌入超过最大大小,Discord 将返回错误。谢谢!

库存代码:

const db = require('quick.db');
const Discord = require('discord.js');

module.exports = {
    name: "inventory",
    description: "View your inventory",


    async run (client, message, args) {
        let items = await db.fetch(message.author.id);
        if(items === null) items = "Nothing"

        const Embed = new Discord.MessageEmbed()
        .addField('Inventory', items)

        message.channel.send(Embed);
    }
}

TL;DR 如何删除重复的项目并将项目数量放在项目旁边。

4

1 回答 1

1

您基本上需要将您的项目数据结构转换为按项目类型组织的其他数据结构。但我们不知道到底是什么“物品”。这里只是一个可能的例子。假设您的库存是一组对象,您可以执行以下操作:

var items = [{name:'fishing pole'}, {name:'sword'}, {name:'fishing pole'}, {name:'fish'}, {name:'fish'}, {name:'fishing pole'}];
console.log('Disorganized:', items);

var inventoryMap = new Map();

items.forEach(function(item, index, array) {
  var itemArray = inventoryMap.get(item.name);
  if (itemArray) {
    itemArray.push(item);
  } else {
    inventoryMap.set(item.name, [item]);
  }
});

console.log('Sorted:');

inventoryMap.forEach( function(value, key) {
  console.log(key, '('+value.length+')');
});

于 2021-05-20T05:44:22.430 回答