首页 > 解决方案 > 基于输入值的打字稿动态过滤器数组

问题描述

我有一个要求,即根据输入字段中输入的值过滤对象数组。 数据

data: [{
  taskname: 'Test1',
  taskId: '1',
  status: 'Submitted'
}, {
  taskname: 'Test2',
  taskId: '2',
  status: 'Resolved'
}, {
  taskname: 'Test3',
  taskId: '4',
  status: 'Submitted'
}, {
  taskname: 'Test4',
  taskId: '5',
  status: 'In Progress'
}, {
  taskname: 'Test5',
  taskId: '6',
  status: 'Resolved'
}, {
  taskname: 'Test6',
  taskId: '7',
  status: 'Submitted'
}
}]

在输入字段中,同时输入

R

然后我根据状态值过滤数据,并带有“R” Respected o/p

data: [{
      taskname: 'Test2',
      taskId: '2',
      status: 'Resolved'
    }, {
      taskname: 'Test5',
      taskId: '6',
      status: 'Resolved'
    }
    }]

我的代码

var o/p = data.filter(x => x.status == input filed value);

上面的代码不能正常工作。提前致谢。

标签: arraysangulartypescript

解决方案


let filterdData = data.filter(x => x.status.includes(input))

您可以使用String.prototype.includes()返回其status属性包含您的数据的子集input


推荐阅读