迭代器方法
Array的原型上暴露了3个用于检测数组内容的方法
- keys() 返回数组索引的迭代器
- values() 返回数组元素的迭代器
- 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"]]
迭代方法
五个迭代方法,都不改变调用他们的数组
- 每个方法接收两个参数
- 以每一项为参数运行的函数
- 可选的作为函数运行上下文的作用域对象
- 函数接收三个参数
- 数组元素
- 元素索引
- 数组本身
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) => {
//执行某些操作})