Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用多个值筛选中的数组_Javascript_Arrays_Reactjs - Fatal编程技术网

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