【发布时间】:2022-12-12 01:14:05
【问题描述】:
我正在学习 javascript 并且我在 javascript 代码中应用过滤器,在下面的代码中,是否有可能即兴创作这段代码?我希望有人能告诉我如何只使用一个变量来存储大于 18 岁和小于 18 岁的年龄结果。是否可以在单个返回语句中使用 && 运算符?这样在最终结果中我可以将数据显示为
18、21、24、30、32 类别下的选民可以投票。 10,15 岁以下的选民不能投票
//Code
const ages = ["10", "15", "18", "21", "24", "30", "32"];
const ageResultabove = ages.filter((ageabove) => {
return ageabove >= 18;
});
const ageResultbelow = ages.filter((ageabelow) => {
return ageabelow < 18;
});
console.log(`Voters under ${ageResultabove} category can vote`);
console.log(`Voters under ${ageResultbelow} category cannot vote`);
结果应该是这样的 18、21、24、30、32 类别下的选民可以投票。 10,15 岁以下的选民不能投票
【问题讨论】:
-
您发布的代码不正确。在比较它们之前,您应该确保列表中的年龄已转换为数字。最简单的方式是
+ageabove和+agebelow。 -
@Pointy 大多数(如果不是全部)引擎会在比较之前将其转换为数字
-
另外,我看不到
&&与您想要的有任何关系。无论哪种方式,您都需要两个单独的列表来获得所需的输出。 -
这个问题更像是如何使用过滤器获取不匹配的元素?
-
您可以将这两个值放入具有“above”和“below”属性的对象中,然后返回该对象。
标签: javascript arrays filter logical-operators