因为它简单,好用,清晰,可拓展性强,而且比for、foreach还有非常不常用的while、do...while高级,代码清晰,可读性强,代码就看起来很优雅,如果都是嵌套循环和嵌套回调,看起来就是一团乱麻,可读性差,很不优雅。
要做优雅的程序员,写优雅的代码。
array.some(callback(element , index , array))
其中element是array中的每个元素,index是当前元素的索引,array是元素所在的数组本身。只有element是必选的参数,index和array是可选的。
综上所述,array.some()常用来处理遍历数组元素并且寻找所需要的元素。
举个最简单的例子,检查数组中是否有任何正数:
// 示例 1:检查数组中是否有任何正数
const numbers = [-1, -2, -3, 0, 1, 2];
const hasPositive = numbers.some(num => num > 0);
console.log(hasPositive); // 输出:true
难度稍微上调一点,检查数组中是否有任何正数,如果有,则输出正数并计算正数的和,如果没有则输出0:
// 示例 2:检查数组中是否有任何正数,如果有,则输出正数并计算正数的和,如果没有则输出0
const numbers = [-1, -2, -3, 0, 1, 2];
var sum = 0;
const hasPositive = numbers.some(num =>{
if( num > 0){
console.log(num);
sum += num;
}
});
console.log("所有正数的和为:",sum); // 输出正数的和
很多json文件里面就是数组,实际需求中数组很多时候会用来存放对象,比如这个例子,就是检查数组中的对象哪些人刚满18岁~
// 示例 3:检查数组中是否有刚满18岁的对象
const people = [
{
name: "张三",
age: 20,
hobby: "唱歌",
},
{
name: "李四",
age: 18,
hobby: "跳舞",
},
{
name: "王五",
age: 18,
hobby: "打篮球",
},
{
name: "赵六",
age: 21,
hobby: "打篮球",
},
];
const ageEquals18 = people.some((person) => {
if (person.age === 18) {
console.log(person.name, "刚满18岁");
}
});
array.some()又简单又好用,网上的课程讲得还很少,早学早用早优雅。
博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~