带or子句的Javascript数组过滤器

带or子句的Javascript数组过滤器,javascript,arrays,Javascript,Arrays,我有一个对象数组,如下所示: [ { manufacturer: 'LG', diagonal: '32', resolution: '1080p' }, { manufacturer: 'LG', diagonal: '24', resolution: '1080p' }, { manufacturer: 'Samsung', diagonal: '32', resolution: '4k' },

我有一个对象数组,如下所示:

[
  {
    manufacturer: 'LG',
    diagonal: '32',
    resolution: '1080p'
  },
  {
    manufacturer: 'LG',
    diagonal: '24',
    resolution: '1080p'
  },
  {
    manufacturer: 'Samsung',
    diagonal: '32',
    resolution: '4k'
  },
  {
    manufacturer: 'Samsung',
    diagonal: '27',
    resolution: '1080p'
  },
]
如果筛选器的每个属性都有一次
{'manufacturer':'LG','diagonal':'27'}
我可以像这样筛选它
newarray=myarray.filter((item)=>{return item['manufacturer']='LG'&&item['diagonal']='32'}

但是,如果筛选器多次使用每个属性,我如何对其进行筛选

{'manufacturer':'Samsung', 'manufacturer':'LG', 'diagonal':'32'}
我需要为更大的过滤器工作,而不仅仅是在这个特殊情况下。

使用方法

const myarray=[
{
制造商:“LG”,
对角线:‘32’,
决议:“1080p”
},
{
制造商:“LG”,
对角线:'24',
决议:“1080p”
},
{
制造商:“三星”,
对角线:‘32’,
决议:“4k”
},
{
制造商:“三星”,
对角线:'27',
决议:“1080p”
},
]
const newarray=myarray.filter((项)=>{
返回[“LG”,“三星”]。一些((val)=>item.manufacturer==val)和&item.diagonal==32'
});

console.log(newarray)
您的意思是要筛选多个值吗?比如:

newarray = myarray.filter((item) => {
    return ( item['manufacturer'] === 'LG' ||item['manufacturer'] === 'Samsung' ) 
             && item['diagonal'] === '32'} )
或者你可以有一个可能的值和用法的列表


预期的输出是什么?对象键是唯一的。所以我怀疑你会多次拥有每个属性。哈哈,这根本不可能。Json是键值对。不能有两个同名键。您创建的示例永远不可能存在。JSON对象“`{A:1,A:5}``无效。不清楚你在问什么,如果你想说的是两个不同的物体有相同的制造商。然后,还可以使用&&基于多个键进行筛选。As filter函数只需要一个布尔返回。
const manufacturerToSearchFor = ['Samsung', 'LG'];

newarray = myarray.filter((item) => {
        return ( manufacturerToSearchFor.includes(item['manufacturer'])
                 && item['diagonal'] === '32'} )