【问题标题】:How to assign two values for each element in an array discord.js如何为数组 discord.js 中的每个元素分配两个值
【发布时间】:2022-12-30 17:14:07
【问题描述】:

这是在 discord.js 中。所以我有三个项目,每个项目都有一个独特的价格(将来会有更多项目)。发送项目的名称,例如“项目 1”应该回复价格。如何在我的代码中使用价格变量?我在考虑关联数组,但我认为 JS 中没有关联数组。

  1. 项目 1 = 100
  2. 项目 2 = 300
  3. 项目 3 = 500

    我有这段代码:

    const items = ["Item 1", "Item 2", "Item 3"];
    const price = [100, 300, 500];
    
    for (var i=0; i < items.length; i++) {
    if (message.content === items[i]) {
    message.reply(PostPrice);
    }
    }
    

【问题讨论】:

  • 使用索引?价格[i]?
  • 原来如此。谢谢。我想我应该使用关联数组之类的东西,所以这样做是可行的。

标签: javascript node.js discord.js


【解决方案1】:

我会使用 Map,一个 javascript 中的内置对象

const items = new Map()
//create map
items.set("item 1",100)
items.set("item 2",300)
items.set("item 3",500)

//check if item exists
if(items.has(message.content.toLowerCase())){
  message.reply("price: "+items.get(message.content.toLowerCase()))
}else{
  message.reply("this item doesnt exist");
}

【讨论】:

  • 您可以使用 message.content.toLowerCase() 而不是 message.content 使它更加用户友好,并使项目也小写,因为有些人不使用不和谐的大写字母
【解决方案2】:

在这种情况下我会使用 json 而不是数组

const items = {"item 1": { price: 100 }, "item 2": { price: 300 }, "item 3": { price: 500 }}

if(items[message.content.toLowerCase()) {
message.reply("price: "+items[message.content.toLowerCase()]["price"])
} else {
message.reply("item doesnt exist")
}

【讨论】:

    猜你喜欢
    • 2011-08-19
    • 1970-01-01
    • 1970-01-01
    • 2018-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-30
    • 2015-03-17
    相关资源
    最近更新 更多