Javascript 使用多个值筛选中的数组
我正在尝试筛选一个数组,以便在对象与Javascript 使用多个值筛选中的数组,javascript,arrays,reactjs,Javascript,Arrays,Reactjs,我正在尝试筛选一个数组,以便在对象与过滤器选项(另一个数组)中的一个选项匹配时显示它们 示例:如果filterOptions包含字符串big则应显示大小为的对象,其中包含字符串big 但是,我不确定如何正确分割数据。大小,以便它可以使用此数据进行筛选,我如何才能做到这一点 export const App=()=>{ 常数数据=[ {大小:'大,小',}, {大小:'中,小'}, {大小:'小,大',}, {大小:'大',}, {大小:'中等',} ]; 常量过滤器选项=[“大”、“小”];
过滤器选项
(另一个数组)中的一个选项匹配时显示它们
示例:如果filterOptions
包含字符串big
则应显示大小为的对象,其中包含字符串big
但是,我不确定如何正确分割数据。大小
,以便它可以使用此数据进行筛选,我如何才能做到这一点
export const App=()=>{
常数数据=[
{大小:'大,小',},
{大小:'中,小'},
{大小:'小,大',},
{大小:'大',},
{大小:'中等',}
];
常量过滤器选项=[“大”、“小”];
const splitData=data.map(items=>items.size.split(',');
返回(
{console.log(splitData)}
{data.filter(items=>items.size.includes(filterOptions))
.map(项目=>{item.size}
)
)
}
此答案可以容纳尽可能多的过滤器选项
data.filter(items => items.sizes.split(',').find(size => filterOptions.includes(size)))
以下是您可能会采取的方法(尽管有很多不同的方法可以实现您的结果):
const数据=[
{大小:'大,小',},
{大小:'中,小'},
{大小:'小,大',},
{大小:'大',},
{大小:'中等',}
];
常量过滤器选项=[“大”、“小”];
常量filterData=data.filter({size})=>{
用于(过滤器选项的常数过滤器){
if(尺寸。包括(过滤器)){
返回true;
}
}
} );
console.log(filterData)代码>我相信您正在寻找:
{data.filter(i => i.sizes.split(",").some(size => filterOptions.includes(size)))
.map(item => <div>{item.sizes}<br/></div>)}
.as控制台{背景色:黑色!重要;颜色:石灰;}
.作为控制台包装{最大高度:100%!重要;顶部:0;}
您在寻找什么
const数据=[
{
尺寸:“大,小”,
},
{
尺码:“中、小”
},
{
尺寸:“小,大”,
},
{
尺寸:'大',
},
{
尺寸:'中等',
}
];
常量过滤器选项=['big','small'];
const filterData=data.filter(d=>filterOptions.every(f=>d.size.split(',')。包括(f));
console.log(filterData)代码>所以在这种情况下,只显示包含大小的大小,或者大小:
即使不包含“小”也会通过吗?我的建议是:大小应该是一个数组。尺寸:[“大”、“小”、“中”。这样,您就不必拆分它,而且它更清晰。更不用说,如果不拆分和修剪,大小:“小、大、大、小、中、小、小、小、小、大、小、小、小、小、小、小、大、小、小、小、小、小、小、小、小、小、小、小、小、小、小、小、小、小、小、小、小、小、小、小、小、小、小、小、小、小、小、小、小、小。
{data.filter(i => i.sizes.split(",").some(size => filterOptions.includes(size)))
.map(item => <div>{item.sizes}<br/></div>)}