JS数组中every, some, filter, map方法

2,291 阅读2分钟

 1. every() 方法:

作用:用于检测数组中所有元素是否符合指定条件。(全部)

说明:

如果数组中检测到有一个元素不满足,则整个表达式返回 false ,剩下的元素不会再进行检测,如果所有元素都满足条件,则返回 true 。

注意:

需要传入函数,并且函数的返回值为 boolen 类型。

参数:

array.every(function(value, index, arr))

第一个参数:数组的元素

第二个参数:数组的下标

第三个参数:整个数组

代码:

// 查看班级中的同学成绩是否都及格

const user = [
    {name : '李四', js : 89},
    {name : '王五', js : 77},
    {name : '马六', js : 55}
];

const result = user.every((value) => value.js >= 60);
console.log(result);



 2. some() 方法:

作用:用于检测数组中是否有元素符合指定条件。(部分)

说明:

如果数组中检测到有一个元素满足,则整个表达式返回 true ,剩下的元素不会再进行检测,如果没有元素都满足条件,则返回 false 。

注意:

需要传入函数,并且函数的返回值为 boolen 类型。

参数:

array.some(function(value, index, arr))

第一个参数:数组的元素

第二个参数:数组的下标

第三个参数:整个数组

代码:

// 检测是否含有违规关键词

let words = ['娃哈哈', '果粒橙'];
let title = '果粒橙好喝哟';

let state = words.some(value => title.indexOf(value) >= 0);
if(state) console.log('标题含有违规关键词');


 3. filter() 方法:

作用:过滤数据中的元素。

说明:

创建一个新的数组,新数组中的元素是通过引用指定数组中符合条件的所有元素。

注意:

需要传入函数,并且函数的返回值为 boolen 类型。

参数:

array.some(function(value, index, arr))

第一个参数:数组的元素

第二个参数:数组的下标

第三个参数:整个数组

代码:

let lessons = [
    {title : '数学', teacher : '李老师'},
    {title : '英语', teacher : '王老师'},
    {title : '体育', teacher : '李老师'}
];

let teacherLiClass = lessons.filter(value => value.teacher == '李老师');
console.log(teacherLiClass);


 4. map() 方法:

作用:作用在数组的每个元素上,用于映射出新的值。

说明:

通过指定函数处理数组的每个元素,并返回处理后的数组,原数组与新数组为一一映射的关系。

注意:

需要传入函数,并且函数返回新的值。

参数:

array.some(function(value, index, arr))

第一个参数:数组的元素

第二个参数:数组的下标

第三个参数:整个数组

代码:

let lessons = [
    {title : '数学', teacher : '李老师'},
    {title : '英语', teacher : '王老师'},
    {title : '体育', teacher : '李老师'}
];

lessons = lessons.map(item => {
    item.title = `[三年级]${item.title}`;
    return item;
});
console.log(lessons);