Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.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 基于jQuery中的其他数组动态筛选数组_Javascript_Jquery_Arrays - Fatal编程技术网

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