如何忽略数组表中的未定义输入?Bot代码崩溃问题解决
解决方法
你可以通过在函数中添加存在性检查,为错误输入返回安全的默认值,避免程序崩溃。以下是两种常用实现方式:
方式一:用hasOwnProperty判断键是否存在
const arrayTable = { array1 : ['A1', 'A2'], array2 : ['B1', 'B2'] // 更多数组定义 }; function selectedData(input) { // 检查输入对应的键是否属于arrayTable自身属性 if (arrayTable.hasOwnProperty(input)) { return arrayTable[input]; } // 输入无效时返回空数组(可根据需求改为其他默认值,比如undefined) return []; } selectedData("array1"); // 返回 ['A1', 'A2'] selectedData("wronginput"); // 返回 [],不会崩溃
方式二:用可选链+空值合并运算符(ES6+)
这种写法更简洁,适合现代JavaScript环境:
const arrayTable = { array1 : ['A1', 'A2'], array2 : ['B1', 'B2'] // 更多数组定义 }; function selectedData(input) { // 若arrayTable[input]不存在,则返回空数组 return arrayTable[input] ?? []; } selectedData("array1"); // 返回 ['A1', 'A2'] selectedData("wronginput"); // 返回 [],不会崩溃
说明
两种方式的核心逻辑一致:当输入的键未在arrayTable中定义时,返回一个不会导致后续代码崩溃的安全值(比如空数组)。如果业务逻辑允许,也可以返回undefined,但需要确保后续处理返回值的代码能兼容undefined的情况。
内容的提问来源于stack exchange,提问作者Lauren
相关产品推荐
相关产品推荐

