Javascript 如何在数组中循环
我在数组中循环时遇到问题。我正在为Discord制作一个RPG机器人,我需要在提示时显示玩家的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
目录。我尝试使用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}`)
})