根据 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
作为变量名 - 它是保留的。使用其他东西。
class
是JavaScript
中的保留字。要获得预期的输出,您可以使用 .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) );
抱歉这个基本问题...我对 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
作为变量名 - 它是保留的。使用其他东西。
class
是JavaScript
中的保留字。要获得预期的输出,您可以使用 .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) );