数据准备: 成绩数组
const scores = [
{ name: "张三", age: 17, score: 100 },
{ name: "李四", age: 19, score: 85 },
{ name: "王五", age: 23, score: 93 },
{ name: "赵六", age: 12, score: 72 },
{ name: "小红", age: 11, score: 59 },
{ name: "小明", age: 32, score: 96 },
{ name: "小刘", age: 45, score: 60 },
{ name: "小张", age: 14, score: 87 },
];
every()
对数组每一项都运行传入的函数,如果对每一项函数都返回 true ,则这个方法返回 true 必须全部符合
const isEvery = scores.every(({ score }) => {
return score >= 60;
});
console.log(
"1 案例: 同学们这次考试如果全部及格(全部大于等于60分)的话就没有假期作业"
);
console.log(isEvery ? "恭喜恭喜,假期愉快" : "很遗憾,有同学不及格");
filter()
对数组每一项都运行传入的函数,函数返回 true 的项会组成数组之后返回 条件过滤
const excellentStudents = scores.filter(({ score }) => {
return score > 80;
});
console.log(
"2 案例: 这次考试关乎每个人,高于80分的需要分的同学将被分配到优秀班级"
);
excellentStudents.forEach(({ name, score }) =>
console.log(${name},${score}分,恭喜)
);
forEach()
对数组每一项都运行传入的函数,没有返回值 迭代查看
console.log("3 案例: 来来来,宣读成绩了");
scores.forEach(({ name, score }) => {
console.log(${name},${score}分,恭喜);
});
map()
对数组每一项都运行传入的函数,返回由每次函数调用的结果构成的数组 调整对象格式
const evaluations = scores.map(({ name, score }) => {
if (score >= 60) {
return ${name}同学得分${score},Very good,请继续努力!;
} else {
return ${name}同学得分${score},成绩太差,课后留下做作业!;
}
});
console.log("4 案例: 对每位及格的同学进行鼓励,对不及格的同学进行鞭策");
console.log(evaluations.join("\n"));
some()
对数组每一项都运行传入的函数,如果有一项函数返回true ,则这个方法返回 true 存在符合条件即可
const isSome = scores.some(({ score }) => {
return score === 100;
});
console.log("5 案例: 这回只要有人考试满分就不按钮假期作业了");
console.log(isSome ? "你们很幸运" : "安排作业了");