根据 JavaScript 中的另一个数组值从数组中选择元素

Selecting elements from an array based on another array values in JavaScript

抱歉这个基本问题...我对 JS 比较陌生。

我有两个数组,我想 select 根据另一个数组的值得出一个值。

例如,如果我有

var student = [10, 11, 21, 30, 31, 14];
var class   = [1,   1,  2,  3,  3,  1];

例如,我将如何进行(最好使用过滤器 and/or 地图)以获取 class = 1 中的学生编号列表。

我知道我将如何使用 for-loop 和 push() 函数来完成它,但我认为应该有更多 elegant/concise 方法在带有 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 作为变量名 - 它是保留的。使用其他东西。

classJavaScript中的保留字。要获得预期的输出,您可以使用 .filter 到 return 元素,其中 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) );