很抱歉这个基本问题…我对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 classes = [1, 1, 2, 3, 3, 1];
console.log(
student.filter((_, i) => classes[i] === 1)
);
请记住,您不能使用class
作为变量名-它是保留的。用别的吧
class
为JavaScript
中的保留字。要获得预期的输出,可以使用.filter
返回classes[index]
值为1的元素:
const students = [10, 11, 21, 30, 31, 14];
const classes = [1, 1, 2, 3, 3, 1];
const getStudentsInClassOne = (arr=[]) => {
if(arr.length !== classes.length) return;
return arr.filter((e,index) => classes[index]===1);
}
console.log( getStudentsInClassOne(students) );