繁体   English   中英

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

[英]Selecting elements from an array based on another array values in JavaScript

对不起这个基本问题......我对JS比较陌生。

我有两个 arrays 并希望根据另一个的值从一个 select 值。

例如,如果我有

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

例如,我将如何继续(理想情况下使用过滤器和/或映射)以获取class = 1中的学生编号列表。

我知道如何使用 for-loop 和 push() function 来完成此任务,但我认为应该有一种更优雅/简洁的方式来使用 map、过滤器或其他功能在单行命令中执行该任务。

提前感谢您的帮助。

通过检查另一个数组中的索引来过滤学生将非常简单:

 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中的保留字。 要实现预期的 output,您可以使用.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) );

谢谢大家的意见。 正如您可以想象的那样,我的问题并不完全是这样,因此我没有意识到名为“类”的变量的问题。

我喜欢过滤器 function 的两个答案。 它们几乎完全相同,除了在第一个解决方案中将 e 替换为下划线。 我将在未来使用该下划线运行谷歌搜索:我想它可以在这里使用,因为'e'没有被使用,因此无关紧要..

再次感谢您的帮助和时间::)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM