javascript - 使用 .find() 时忽略空值

标签 javascript arrays typescript object ecmascript-6

我正在使用 javascript 的 .find() 方法在我的数组中搜索值。我收到以下错误:Uncaught TypeError: Cannot read property 'toUpperCase' of null 发生在这一行:if (this.collection.find(x => x.details. numb.toUpperCase() === numb)) {

我认为发生此错误是因为 x.details.numb 中有空值。是否可以忽略这行代码中的空值?还是我必须重新制作没有空值的数组?

最佳答案

您可以在调用 toUpperCase 之前检查空值

if (this.collection.find(x => x.details && x.details.numb && x.details.numb.toUpperCase() === numb)) {

正如@VLAZ 在评论中指出的那样,对于 numb === '' 这将失败,在这种情况下您可以使用

(x.details && x.details.numb || '' ).toUpperCase() === numb

关于javascript - 使用 .find() 时忽略空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56221802/

相关文章:

typescript - 如何在 typescript 中组合多个接口(interface)?

javascript - 与 Promise 回调混淆的行为

javascript - 如何从每个段落中只选择 1 个复选框?

javascript - 如何使用验证码?

javascript - 如何将表单中的数据发布到本地 JSON 文件?

c - 段错误;绝对值表

angular - 需要帮助正确输入函数参数

javascript - 为什么设置 "No license field": true in your package. json 时 "private"警告消失

javascript - 如何在jade中使用多个数组

javascript - 如何将数组项的单个值存储到父索引中?