.find() with Discord Bots



假设我有这个:

let res = body.classes.find(c => c.name.toLowerCase() === args[0].toLowerCase()) || body.typedefs.find(t => t.name.toLowerCase() === args[0].toLowerCase())

我将如何检查Res的输出是否来自body.classes或body.typedefs?

如果body.classes.find指令返回某些内容,则输出将来自body.classes。否则,这将是body.typedefs.find的结果。

const body = {
  classes: [
    { name: 'name1' },
    { name: 'name2' },
    { name: 'name3' },
  ],
  typedefs: [
    { name: 'name1' },
    { name: 'name2' },
    { name: 'name3' },
    { name: 'name4' }
  ]
};
const arg1 = 'NAME1';
const res1 = body.classes.find(c => c.name.toLowerCase() === arg1.toLowerCase()) || body.typedefs.find(t => t.name.toLowerCase() === arg1.toLowerCase());
console.log(res1);
const arg2 = 'NAME4';
const res2 = body.classes.find(c => c.name.toLowerCase() === arg2.toLowerCase()) || body.typedefs.find(t => t.name.toLowerCase() === arg2.toLowerCase());
console.log(res2);

因此,如果要检查输出是来自body.classes还是来自body.typedefs,则只需将每个find功能的输出存储在不同的变量中,然后检查它们即可。像

const findClasses = body.classes.find(c => c.name.toLowerCase() === args[0].toLowerCase());
const findTypedefs = body.typedefs.find(c => c.name.toLowerCase() === args[0].toLowerCase());
let res = findClasses || findTypedefs;
if (findClasses) {
  console.log('Ouput from body.classes.find:', findClasses);
}
if (findTypedefs) {
  console.log('Ouput from body.typedefs.find:', findTypedefs);
}

最新更新