JavaScript Array
Array.from() 类数组转换为数组实例。 Array.of() 参数转换为数组实例。 instanceof 判断一个对象是不是数组 只有一个全局执行上下文 Array.isArray() 判断是否为数组 keys() 数组索引的迭代器 values() 数组元素的迭代器 entries() 数组索引和值的迭代器 copyWithin() 批量复制 参数1,插入的位置。 参数2,复制开始的位置。 参数3:复制结束的位置。 fill() 填充 参数1,填充的内容。 参数2,填充开始的位置。 参数3,填充结束的位置。 toLocaleString() 数组值的字符串 逗号分隔符 toString() valueOf() 数组本身 join() 数组值的字符串 参数,自定义的字符串分隔符 push() 推入 pop() 弹出 shift() 删除数组的第一项 unshift() 数组开头添加新数据 reverse() 反向排列 sort() 升序排列 concat() 原数组保持不变 在现有数组全部元素的基础上创建一个新数组 注意:默认 [Symbol.isConcatSpreadable] = true slice() 原数组保持不变 创建一个包含原有数组中一个或对个元素的新数组 参数1,返回元素的开始索引 参数2,返回元素的结束索引 splice() 数组中间插入、删除、或替换元素 参数1,开始位置 参数2,要删除的数量 参数3,插入的元素 indexOf() 要查找的元素在数组中的位置 从前往后搜索 参数1,要查的元素 参数2,起始搜索位置 lastIndexof() 要查找的元素在数组中的位置 从后往前搜索 includes() 布尔值 是否至少找到一个与指定元素匹配的项 断言函数 ECMAScript允许按照定义的断言函数搜索数组 每个索引都会调用这个函数 断言函数的返回值决定了相应索引的元素是否被认为匹配 参数1,数组中当前搜索的元素 参数2,当前元素的索引 参数3,正在搜索的数组 断言函数返回直值,表示是否匹配 find() 返回第一个匹配的元素 findIndex() 返回第一个匹配元素的索引 示例代码 1 const people = [ { name: ‘Matt’, age: 27 }, { name: ‘Nicholas’, age: 29 } ]; alert(people.find((element, index, array) => element.age < 28)); //{name: ‘Matt’, age: 27} 示例代码 2 const evens = [2, 4, 6, 8] evens.find((element, index, array) => { console.log(element); console.log(index); console.log(array); return element === 4; }); // 2 // 0 // [2, 4, 6] // 4 // 1 // [2, 4, 6]
迭代方法 every() filter() forEach() map() some() 原数组保持不变 每个方法接收两个参数:以每一项为参数运行的函数,以及可选的作为函数运行上下午的作用域对象。(影响函数中this的值) 传给每个方法的函数接收3个参数: 参数1,数组元素 参数2,元素索引 参数3,数组本身 every() 对数组每一项都运行传入的函数 如果对每一项函数都返回true 则这个方法返回true filter() 对数组每一项都运行传入的函数 函数返回true的项会组成数组之后返回 forEach() 对数组每一项都运行传入的函数 没有返回值 map() 对数组每一项都运行传入的函数 返回由每次函数调用的结果构成的数组 some() 对数组每一项都运行传入的函数 如果有一项函数返回true 则这个方法返回true 示例代码 let numbers = [1, 2, 3, 4, 5, 4, 3, 2, 1] let everyResult = numbers.every((item, index, array) => item > 2); alert(everyResult); // false let someResult = numbers.some((item, index, array) => item > 2); alert(someResult) // true let filterResult = numbers.filter((item, index, array) => item > 2); alert(filterResult); // 3, 4, 5, 4, 3 let mapResult = numbers.map((item, index, array) => item * 2); alert(mapResult); // 2, 4, 6, 8, 10, 8, 6, 4, 2
reduce() 数组第一项开始遍历到最后一项 参数1,对每一项都会运行的归并函数 参数2,归并起点的初始值 传给reduce()的函数接收4个参数:上一个归并值 当前项 当前项的索引 数组本身 示例代码 let values = [1, 2, 3, 4, 5]; let sum = values.reduce((prev, cur, index, array) => prev + cur); alert(sum); // 15 reduceRight() 从最后一项开始遍历至最后一项
|