多个字符串的角度过滤器数组

时间:2020-01-01 12:27:21

标签: angular typescript

我有一个数组,需要按多个值过滤

data1 = [
  {
    "status": "60"
  },
  {
    "status": "70"
  }, 
  // so on
];

我正在使用单个字符串而不是多个

var countsettled = this.data1.filter((obj) => obj.status === '60' || '61' || '62' || '63' || '64' || '75').length;
var countunsettled = this.data1.filter((obj) => obj.status === '71' || '72' || '73' || '74' || '31' || '32' || '33' || '34' || '66').length;

2 个答案:

答案 0 :(得分:3)

您必须为每个比较指定一个属性:

var countsettled = this.data1.filter((obj) => obj.status === '60' || obj.status === '61' || obj.status === '62' || obj.status === '63' || obj.status === '64' || obj.status === '75').length;

更简洁地执行此操作的另一种方法是使用Array.includes

var countsettledStatus = [60, 61, 62, 63, 64, 75];
var countsettled = this.data1.filter((obj) => countsettledStatus.includes(obj.status)).length;

IE11 Polyfill

在您的polyfill.ts文件中添加polyfill:

import 'core-js/es7/array';

答案 1 :(得分:0)

大多数浏览器支持indexOf

var countsettled = this.data1.filter(f=> ['60','61','62'].indexOf(f.status)!=-1).length;