gpt4 book ai didi

javascript - 更改 for 循环以在 javascript 中使用 forEach

转载 作者:行者123 更新时间:2023-11-30 11:15:59 25 4
gpt4 key购买 nike

对于我的项目,我有一个学生列表,打算使用 super 基本的正则表达式来检查他们的成绩。 A 和 B 学生将被添加到仅供这些学生使用的单独数组中。这样做的代码如下:

const aTest = new RegExp(/(A)/i);
const bTest = new RegExp(/(B)/i);
const aStudents = [];
const bStudents = [];
for (var i = 0; i < students.length; i++) {
if (aTest.test(students[i].grade)) {
aStudents.push(students[i]);
}
if (bTest.test(students[i].grade)) {
bStudents.push(students[i]);
}
}

但是,如果我要使用 forEach 而不是 for 循环,我应该怎么做呢?

最佳答案

您只需要将每个 students[i] 更改为提供给 forEach 的第一个参数(它引用数组中正在迭代的当前项目),可能称它为学生:

students.forEach(student => {
if (aTest.test(student.grade)) {
aStudents.push(student);
} else if (bTest.test(student.grade)) {
bStudents.push(student);
}
});

但是如果您已经有了正则表达式文字,就不需要 new RegExp - 只需将正则表达式文字分配给变量即可。此外,如果您只需要测试,则不需要捕获组:

const aTest = /A/i;
const bTest = /B/i;

或者,您可以完全避免使用正则表达式并使用 (ES6) .includes 代替:

  if (student.grade.includes('A')) {
aStudents.push(student);
} else if (student.grade.includes('B')) {
bStudents.push(student);
}

关于javascript - 更改 for 循环以在 javascript 中使用 forEach,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51509445/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com