基于JavaScript中的另一个数组值从数组中选择元素
对不起,这个基本的问题。。。我对JS比较陌生 我有两个数组,希望根据另一个数组的值从其中选择值 例如,如果我有基于JavaScript中的另一个数组值从数组中选择元素,javascript,arrays,dictionary,filter,match,Javascript,Arrays,Dictionary,Filter,Match,对不起,这个基本的问题。。。我对JS比较陌生 我有两个数组,希望根据另一个数组的值从其中选择值 例如,如果我有 var student = [10, 11, 21, 30, 31, 14]; var class = [1, 1, 2, 3, 3, 1]; 例如,我如何继续(理想情况下使用过滤器和/或映射)获取class=1中的学生编号列表 我知道如何使用for循环和push()函数来完成这项任务,但我认为应该有一种更优雅/简洁的方法来使用map、filter或其他函数在单行命令
var student = [10, 11, 21, 30, 31, 14];
var class = [1, 1, 2, 3, 3, 1];
例如,我如何继续(理想情况下使用过滤器和/或映射)获取class=1
中的学生编号列表
我知道如何使用for循环和push()函数来完成这项任务,但我认为应该有一种更优雅/简洁的方法来使用map、filter或其他函数在单行命令中执行这项任务
提前感谢您的帮助。通过检查另一个数组中的索引来筛选学生将非常简单:
var student=[10,11,21,30,31,14];
var类=[1,1,2,3,3,1];
console.log(
学生过滤器((u,i)=>classes[i]==1)
);
class
是JavaScript
中的保留字。为了获得预期的输出,您可以使用返回classes[index]
值为1的元素:
const students=[10,11,21,30,31,14];
常量类=[1,1,2,3,3,1];
const getStudentsInClassOne=(arr=[])=>{
if(arr.length!==classes.length)返回;
返回arr.filter((e,index)=>classes[index]==1);
}
log(getStudentsInClassOne(students))代码>谢谢大家的评论。我的问题并非如你所想象的那样,因此我没有意识到一个名为“class”的变量的问题
我喜欢带过滤功能的两个答案。它们几乎完全相同,只是第一个解决方案中的e被下划线替换。我将来会在谷歌上搜索该下划线的用法:我想这里可以使用它,因为没有使用“e”,因此不相关
再次感谢您的帮助和时间!:) 对于我来说,
的循环听起来非常优雅,tbh。在class=1
中产生的学生编号列表是什么?也许可以演示您使用for循环和push
方法尝试了什么?