javascript - 如果找到数组中的元素,如何将其添加到数组中?

标签 javascript typescript typescript2.0

我使用这个方法来查找数组中的对象:

lat arr = [];
found = this.obj[objKey].filter(item => item[internKeyName] == 7047);
arr.push(found);

问题是,如果找不到元素,它会将其作为 undefined 添加到数组 arr 中。如何避免这种情况?

为什么找不到带有键:“subjectId”的元素:

let objKey = 7047;
let k = "subjectId";
let v = 7047;

found = this.obj[objKey].filter(item => item[k] == v);

console.log(found);// undefined

enter image description here

最佳答案

您可以通过在将其推送到数组之前检查找到的长度来避免这种情况。

lat arr = [];
found = this.obj[objKey].filter(item => item[internKeyName] == 7047);
found.length > 0 && arr.push(...found);

我正在使用spread syntax将每个元素作为其自己的项目推送到新数组,我认为这就是您想要的。如果您希望所有找到的项目都是其自己的数组项目,则可以删除 ...

关于javascript - 如果找到数组中的元素,如何将其添加到数组中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49614350/

相关文章:

javascript - 如何测试一个方法是否在 Jest 中返回一个类的数组

node.js - Nestjs:验证函数不适用于 jwt

javascript - 无法在 typescript 中的 Controller 中注入(inject)服务

typescript - 如何使用 get 方法访问 Typescript 中对象的字段?

javascript - 我们如何在 JSP 页面上一次显示 Map<String, List<Object>> 中的一个键及其值?

javascript - 为什么这个闭包和 IIFE 不起作用?

javascript - 如何用不同的输入测试一个函数

javascript - 在 React JS 中需要带有变量的文件

javascript - 与字典元素 typescript 进行比较

angular - 将 Ionic 2 迁移到 Typescript 2.0 RC