过滤值列表

时间:2019-11-18 08:36:16

标签: javascript node.js

我需要过滤一些固定值(885,900,915,930,945),我可以这样做:

filteredData = data.options.filter(item => item.foo === 'CALL' && (item.bar === 885 || item.bar === 900 || item.bar === 915 || item.bar === 930 || item.bar === 945));

但是感觉就像一个丑陋的解决方案。我想做的是这样的:

const barConst = 885 || 900 || 915 || 930 || 945;
filteredData = data.options.filter(item => item.foo === 'CALL' && (item.bar === barConst);

但是那显然是行不通的。我可以在Javascript / node中做到这一点的任何巧妙方法吗?

2 个答案:

答案 0 :(得分:2)

您可以获取一个数组并使用Array#includes进行检查。

const
    barConst = [885, 900, 915, 930, 945],
    filteredData = data.options.filter(
        ({ foo, bar }) => foo === 'CALL' && barConst.includes(bar)
    );

答案 1 :(得分:1)

includes仅适用于ES6,indexOf也适用于ES5,您可以获得相同的结果:

const barConst = [885, 900, 915, 930, 945];

    filteredData = data.options.filter(item => 
           item.foo === 'CALL' && barConst.indexOf(item.bar) > 0);

https://www.codementor.io/adroitcoder/includes-vs-indexof-in-javascript-ivxhatb3y

相关问题