我有一个数组,需要按多个值过滤
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;
答案 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;