discord.js开发中如何将数组转换为指定格式的普通对象
问题原因
Object.fromEntries()要求入参是由[键, 值]二元数组组成的数组,例如[ ["result", "测试结果"] ],才能正确转换为对象。- 你当前拿到的
results是由普通对象组成的数组,结构为[ { result: xxx } ],不符合Object.fromEntries()的入参要求,所以会返回{ undefined: undefined }。
解决方法
你要的目标对象就是数组的第一个元素,直接按索引取值即可,还可以额外加空数组判断避免报错:
module.exports = { name: "wki", aliases: [], run: async (client, message, args, color) => { const query = args.join(" ") wikia.search(query).then(results => { console.log(results) // 直接取数组第一个元素,加非空判断更稳妥 const obj = results?.length ? results[0] : {}; console.log(obj); }); } }
如果你的实际场景中数组可能存在多个对象,需要合并所有对象的键值对,可以用Object.assign处理:
const obj = Object.assign({}, ...results);
内容的提问来源于stack exchange,提问作者one ppment
相关产品推荐
相关产品推荐

