Javascript 循环通过过滤器函数内部的第二个数组

Javascript 循环通过过滤器函数内部的第二个数组,javascript,arrays,Javascript,Arrays,在过滤器数组函数内部的数组tabData中循环时遇到问题。有什么建议吗 这是我当前的代码行 const filteredData = allData.filter(({ existingLabel }) => existingLabel === tabData[/* Im having trouble iterating through this array */].label); 数组结构allData 0: {existingLabel: "exams", x: "xyz", a:

过滤器
数组函数内部的数组
tabData
中循环时遇到问题。有什么建议吗

这是我当前的代码行

const filteredData = allData.filter(({ existingLabel }) => existingLabel === tabData[/* Im having trouble iterating through this array  */].label);
数组结构
allData

0: {existingLabel: "exams", x: "xyz", a:12345, ...many fields}
1: {existingLabel: "notes", x: "ska", a:67333, ...many fields}
2: {existingLabel: "quiz",  x: "sf3", a:34355, ...many fields}
3: {existingLabel: "notes", x: "xhi", a:34253, ...many fields}
4: {existingLabel: "exams", x: "ojk", a:98527, ...many fields}
5: {existingLabel: "quiz",  x: "qid", a:65287, ...many fields}
0:{tab:1 , label:'notes'} 
1:{tab:2 , label:'exams'}
2:{tab:3 , label:'quiz'}
数组结构
tabData

0: {existingLabel: "exams", x: "xyz", a:12345, ...many fields}
1: {existingLabel: "notes", x: "ska", a:67333, ...many fields}
2: {existingLabel: "quiz",  x: "sf3", a:34355, ...many fields}
3: {existingLabel: "notes", x: "xhi", a:34253, ...many fields}
4: {existingLabel: "exams", x: "ojk", a:98527, ...many fields}
5: {existingLabel: "quiz",  x: "qid", a:65287, ...many fields}
0:{tab:1 , label:'notes'} 
1:{tab:2 , label:'exams'}
2:{tab:3 , label:'quiz'}
我尝试执行以下操作,但出现以下错误“预期为赋值或函数调用,但看到的却是表达式”

const filteredData=allData.filter({existingLabel})=>{
for(设i=0;i
您可以使用下面的代码来解决您的问题。当此代码在
allData
中循环时,它会检查当前元素的选项卡是否等于指定的选项卡。如果是,它会保留它。如果不是,它将删除它

let allData=[{existingLabel:“考试”,x:xyz,a:12345},{existingLabel:“笔记”,x:ska,a:67333},{existingLabel:“测验”,x:sf3,a:34355},{existingLabel:“笔记”,x:xhi,a:34253},{existingLabel:“考试”,x:ojk,a:98527},{existingLabel:“测验”,x:qid,a:65287});
设tabData=[{tab:1,标签:'notes'},{tab:2,标签:'tests'},{tab:3,标签:'quick'}];
设tab=2;
const filteredData=allData.filter({existingLabel})=>tabData.filter(e=>e.label==existingLabel)[0]。tab==tab);

console.log(filteredData)根据当前提供的信息,这是不可能的。但如果再加上一条信息,这就很简单了。如果您已经知道要查找的选项卡的标签,可以执行以下操作:

const filterToLabel=(allData)=>(tabLabel)=>
allData.filter(({existingLabel})=>existingLabel===tabLabel)
const allData=[{existingLabel:“考试”,x:“xyz”,a:12345},{existingLabel:“笔记”,x:“ska”,a:67333},{existingLabel:“测验”,x:“sf3”,a:34355},{existingLabel:“笔记”,x:“xhi”,a:34253},{existingLabel:“考试”,x:“ojk”,a:98527},{existingLabel:“测验”,x:“qid”,a:65287}]
const tabData=[{tab:1,标签:'notes'},{tab:2,标签:'tests'},{tab:3,标签:'quick'}]
log(filterToLabel(allData)('notes'))/=>ska/67333,xhi/34253
谢谢大家的帮助:)这就是我解决问题的方法

const filteredData=allData.filter({existingLabel})=>{
让returnedData=[];
for(设i=1;i
你在找什么?您是否看到
existingLabel
与所有
tabData.label
匹配,还是只匹配一个?在这种情况下,签出并尝试将allData中的每个索引与tabData@aplet123中的标签类别相匹配您所说的匹配是什么意思?您正在筛选阵列。你的意思是如果
existingLabel
至少等于
tabData
中的一个标签,它就不会被过滤掉吗?是的,我只想循环通过那个数组…我觉得它很简单,但我有一段困难的时间,因为它在一个过滤函数中,然后你在某个地方丢失了一个变量。跟踪“当在选项卡N上时”的是什么?当提供了当前选项卡的标签时,为其编写函数非常容易,但是如果没有它,则不会指定您的问题。