【查漏-js】2.数组的迭代方法 every some

数组的迭代以前使用较多是 filterforEachmap 三种方法。

  • filter 是返回 返回函数为true项 组成的数组。

    1
    2
    3
    4
    5
    6
    let list = [1, 2, 3, 4];
    list = list.filter((item) => {
    return item > 2;
    });

    console.log(list); // [3, 4]
  • forEach 是循环每一项。但是没有返回值

    1
    2
    3
    4
    5
    6
    7
    8
    9
    let list = [1, 2, 3, 4];
    let newArr = [];
    list.forEach((item, index) => {
    if (index % 2 == 0) {
    newArr.push(item);
    }
    });

    console.log(newArr); // [ 1, 3 ]
  • map 同样是循环每一项。但是有返回值

    1
    2
    3
    4
    5
    let list = [1, 2, 3, 4];

    let newArr = list.map((item, index) => item + 1);

    console.log(newArr); // [ 2, 3, 4, 5 ]

every

every比较常用的场景是一个表单校验的情况,
在各项均校验 都为true的时候,整个表单才返回true

代码:

1
2
3
4
5
let list1 = [false, false, true]
let list2 = [true, true, true]

console.log(list1.every((item) => item)); // false
console.log(list2.every((item) => item)); // true

some

some比较常用的场景是手风琴菜单在只能打开一个的情况下,判断打开状态,
只要有任何一个为true,就返回true;

1
2
3
4
5
let list1 = [false, false, true]
let list2 = [false, false, false]

console.log(list1.some((item) => item)); // true
console.log(list2.some((item) => item)); // false