js filter 如何实现一个条件的多个值按顺序筛选

例如,

var array = [
  {
      a: 1
  },
  {
      a: 1
  },
  {
      a: 2
  },
  {
      a: 3
  },
]

先找数组中a = 1的,如果没有再找a = 2 的,还没有就找a = 3的。现在能想到的就是简单的筛选,一直使用if else来判断

var match = array.filter(item => item.a = 1);
if  (match.length == 0) {
    match  = array.filter(item => item.a = 2);
    ...
} 

如果条件多了,这样写什么时候是个头,请问各位,有没有什么简易的写法,感激不尽

写个函数传入值就行,代码如下,有帮助麻烦点个采纳【本回答右上角】,谢谢~~有其他问题可以继续交流~



    var array = [
        {
            a: 1
        },
        {
            a: 1
        },
        {
            a: 2
        },
        {
            a: 3
        },
    ]
    function filter(values) {
        for (let v of values) {
            var match = array.filter(item => item.a ==v);
            if (match.length > 0) return match;
        }
        return null;
    }
    var item = filter([5, 2, 1]);
    alert(JSON.stringify(item))//[{"a":2}]
    item = filter([5, 6,7]);
    alert(JSON.stringify(item))//null