Javascript 如何在数组中循环

Javascript 如何在数组中循环,javascript,object,discord.js,Javascript,Object,Discord.js,我在数组中循环时遇到问题。我正在为Discord制作一个RPG机器人,我需要在提示时显示玩家的目录。我尝试使用Object.values(),Object.map()和Object.entries()。项的名称已经通过对象计算出来。键(库存),但是值是问题所在 var invItems=Object.key(库存); var InvValues=对象。分录(存货); 对于(变量i=0;i 0){ message.channel.send(`${invValues[i[1]]}x${invItem

我在数组中循环时遇到问题。我正在为Discord制作一个RPG机器人,我需要在提示时显示玩家的
目录。我尝试使用
Object.values()
Object.map()
Object.entries()
项的名称
已经通过
对象计算出来。键(库存)
,但是
是问题所在

var invItems=Object.key(库存);
var InvValues=对象。分录(存货);
对于(变量i=0;i 0){
message.channel.send(`${invValues[i[1]]}x${invItems[i]}`);
}
};
我是一名初级编码员,所以请解释得比平时更详细。

var invItems=Object.keys(库存);
var invValues=对象。条目(库存);//固定资本i
对于(变量i=0;i 0){
message.channel.send(`invValues[i]}x${invItems[i]}`);
}
};
您没有使用
i
作为索引,而是尝试访问
i[1]
,就像它是一个数组一样

此外,在Javascript中,还可以执行
JSON.stringify
来查看对象结构。这将把你的
清单
打印成
JSON字符串

//这可能有助于您查看清单的外观

对于(设i=0;i,您可以直接使用类似循环的方式将值发送到
message.channel

for (let [key, value] of Object.entries(inventory)) {
  if (value > 0) {
    message.channel.send(`${value}x ${key}`);
  }
}
说明:

Object.entries()
方法返回给定对象自身可枚举字符串键控属性[key,value]对的数组。因此,当我们像这样使用它时:

const object1={
a:‘某物串’,
b:42
};

console.log(Object.entries(object1));
您使用的
Object.entries
将提供一个键/值对数组。注意这里:
invValues[i[1]]
您试图使用访问
i
的属性
1
,该属性可能是
未定义的
。如果在此处使用
forEach
进行迭代,实际上可以避免一些复杂情况

const inventory={
itemA:'A'的说明,
itemB:“B的描述”
}
Object.entries(inventory.forEach)([key,value])=>{
//替换为message.channel.send(…)
log(`${key}:${value}`)
})