Javascript 基于jQuery中的其他数组动态筛选数组
我在解决这种情况时遇到了困难,因为我需要根据另一个数组的键值过滤一个数组。这可能很容易,但我无法捕捉到正确的键值对 我有一系列的标记:Javascript 基于jQuery中的其他数组动态筛选数组,javascript,jquery,arrays,Javascript,Jquery,Arrays,我在解决这种情况时遇到了困难,因为我需要根据另一个数组的键值过滤一个数组。这可能很容易,但我无法捕捉到正确的键值对 我有一系列的标记: marks = { eng : 90, maths : 50, phy : 60, chem : 75, bio : 85, } 和另一个具有相同密钥名称的标记数组: tags = { eng : 'English', maths : 'Maths', phy : 'Physics', chem :
marks = {
eng : 90,
maths : 50,
phy : 60,
chem : 75,
bio : 85,
}
和另一个具有相同密钥名称的标记数组:
tags = {
eng : 'English',
maths : 'Maths',
phy : 'Physics',
chem : 'Chemistry',
bio : 'Biology',
}
现在我需要过滤标记
数组,如果标记在标记
数组中是>65
,预期结果是:
filteredTags = {
eng : 'English',
chem : 'Chemistry',
bio : 'Biology',
}
或者更好,如果是:
filteredTags = ['English', 'Chemistry', 'Biology']
到目前为止,我所尝试的:
filteredTags = []
$.each(marks, function(ind, val) {
if (val > 60){
filteredTags = tags.filter(function(i,v) {
return (i == ind)
}
})
使用数组会更容易,但这段代码应该可以工作:
let marks={
英格:90,
数学:50,
phy:60,
化学:75,
简历:85,
}
让标签={
英语",,
数学:“数学”,
phy:“物理学”,
化学:“化学”,
生物:"生物",,
}
函数getTagsWithMarksAbove(num){
让结果=[];
对于(marks中的prop){//迭代marks对象的属性
if(marks[prop]>num)//检查标记是否高于指定的数字
result.push(tags[prop]);//将同名的tags属性的值添加到结果数组中
}
返回结果;
}
console.log(getTagsWithMarksAbove(65))
您可以查看标记的数组
:
const标记={
英格:90,
数学:50,
phy:60,
化学:75,
简历:85
};
常量标记={
英:“英语”,
数学:“数学”,
物理:“物理学”,
化学:“化学”,
生物:“生物学”
};
const result=Object.entries(marks).reduce((全部,[tag,score])=>{
如果(得分>65)所有[标签]=标签[标签];
全部归还;
}, {});
console.log(结果);//对象
console.log(Object.values(result))//值数组
您可以获取条目,过滤键/值对,并获取标记数组
var评分={eng:90,math:50,phy:60,chem:75,bio:85},
标签={eng:'English',math:'math',phy:'Physics',chem:'Chemistry',bio:'Biology'}
结果=对象
.参赛作品(分数)
.filter(([[uv])=>v>65)
.map(([k])=>标记[k])
控制台日志(结果)代码>
var标记={
英格:90,
数学:50,
phy:60,
化学:75,
简历:85,
}
变量标记={
英语",,
数学:“数学”,
phy:“物理学”,
化学:“化学”,
生物:"生物",,
}
var keysorded=Object.keys(marks).sort(函数(a,b){returnmarks[b]-marks[a]})
var finalResult=[];
for(键排序中的var键)
finalResult.push(标记[keysorded[key]]);
控制台日志(最终结果)代码>您的代码不断覆盖filteredTags
const filteredTags=Object.keys(marks).filter(key=>marks[key]>65).map(key=>tags[key])代码>