angular - 非法使用过滤器 typescript

标签 angular typescript

我正在搜索对象数组。如果 item 的状态代码为 1,我将推送到 openIssue,如果是 3,则推送到 inProgressIssue

下面是我的代码:

openIssue = [];
inProgressIssue = [];
issuesNotCompletedInCurrentSprint.filter((item) => {
  if (item.statusId === '1') {
    openIssue.push(item);
  } else if (item.statusId === '3') {
    inProgressIssue.push(item);
  }
});

我收到了代码审查意见:

Illegal use of filter

请告诉我这里做错了什么。

最佳答案

你得到那个错误是因为过滤器期望你返回 bool,过滤器总是这样做。是的过滤器是一个迭代,但返回值应该是 bool 值,这就是它的制作方式, 我建议您使用这样的过滤器,这非常简单。你可以使用 foreach也不会返回任何东西。

openIssue = issuesNotCompletedInCurrentSprint.filter(a => a.statusId === '1');
inProgressIssue = issuesNotCompletedInCurrentSprint.filter(a => a.statusId === '3');

在这里filter将返回 statusid 并返回 fitlered 的值

let issuesNotCompletedInCurrentSprint = [{
  statusId: '1',
  name: 'asfadsf'
}, {
  statusId: '2',
  name: 'asfadsf11'
}, {
  statusId: '3',
  name: 'asfadsf6636'
}];
let openIssue = [];
let inProgressIssue = []
openIssue = issuesNotCompletedInCurrentSprint.filter(a => a.statusId === '1');
inProgressIssue = issuesNotCompletedInCurrentSprint.filter(a => a.statusId === '3');

console.log('open', openIssue, 'inprogress', inProgressIssue)

关于angular - 非法使用过滤器 typescript ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54006059/

相关文章:

Angular 6 Material 表示意图: howto load data from remote?

javascript - Angular 2 - TypeError undefined 不是数组包含的函数

angular - 遇到未定义的提供者!通常这意味着你有一个循环依赖(可能是由于使用 'barrel' index.ts 文件引起的

javascript - *ngFor - 无法动态呈现项目 - Angular 6 - Mat-menu 按钮

当元素确实存在时,Angular 6 TypeScript getElementById 返回 null

angular - 类型错误 : Cannot read property 'form' of undefined

angular - 如何更改折叠图标和展开图标?

javascript - 将弹出窗口放置在从获取查询(GeoJSON 响应)检索到的点上

javascript - 选择全部复选框 Angular Material 5 | Gmail 样式如果选择个人,它也会选择

angularjs - Angular2 - Leaflet-Event 上的 Fire 事件