假设我有这个:
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);
}