【ES6】JavaScript数组-迭代器方法-keys()-values()-entries()-迭代方法-every()-some()-filter()-map()-forEach()

迭代器方法

Array的原型上暴露了3个用于检测数组内容的方法

  1. keys() 返回数组索引的迭代器
  2. values() 返回数组元素的迭代器
  3. entries() 返回索引/值的迭代器

例子

const a = ["apple", "orange", "banana", "strawberry"];

const aKeys = Array.from(a.keys()); // [0, 1, 2, 3]
const aValues = Array.from(a.values()); // ["apple", "orange", "banana", "strawberry"]
const aEntries = Array.from(a.entries()); // [[0, "apple"], [1, "orange"], [2, "banana"], [3, "strawberry"]]

迭代方法

五个迭代方法,都不改变调用他们的数组

  • 每个方法接收两个参数
  1. 以每一项为参数运行的函数
  2. 可选的作为函数运行上下文的作用域对象
  • 函数接收三个参数
  1. 数组元素
  2. 元素索引
  3. 数组本身

every()

对数组中的每一项运行给定函数,如果该函数对每一项都返回true,则返回true

some()

对数组中的每一项运行给定函数,如果该函数对任一项返回true,则返回true

例子

let numbers = [1, 2, 3, 4, 5, 4, 3, 2, 1];
let everyResult = numbers.every((item, index, array) => item > 2); // false
let someResult = numbers.some((item, index, array) => item > 2); // true

filter()

对数组中的每一项运行给定函数,返回该函数会返回true的组成的数组

map()

对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组

例子

let numbers = [1, 2, 3, 4, 5, 4, 3, 2, 1];
let filterResult = numbers.filter((item, index, array) => item > 2); // [3, 4, 5, 4, 3]
let mapResult = numbers.map((item, index, array) => item * 2); // [2, 4, 6, 8, 10, 8, 6, 4, 2]

forEach()

对数组中的每一项运行给定函数。这个方法没有返回值

相当于使用for循环一个遍历数组

例子

let numbers = [1, 2, 3, 4, 5, 4, 3, 2, 1];
numbers.forEach((item, index, array) => {
    
    //执行某些操作})

猜你喜欢

转载自blog.csdn.net/weixin_44972008/article/details/113574651