带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'} )