想到啥写啥,如果有遗漏或者错误的地方,欢迎私聊探讨!
Array.prototype 供数组实例调用,用法:arr.xxx()
1. push() 可向数组的末尾添加一个或多个元素,并返回新的长度。
2. shift() 删除并返回数组的第一个元素。
3. unshift() 向数组的开头添加一个或更多元素,并返回新的长度。
4. splice() 从数组中添加或删除元素。
5. slice() 选取数组的一部分,并返回一个新数组。
6. pop() 删除数组的最后一个元素并返回删除的元素。
7. concat() 连接两个或更多的数组,并返回结果。
8. indexOf() 搜索数组中的元素,并返回它所在的位置。
9. lastIndexOf() 搜索数组中的元素,并返回它最后出现的位置。
10. includes() 【es6】 判断一个数组是否包含一个指定的值。
11. join() 把数组的所有元素放入一个字符串。
12. sort() 对数组的元素进行排序。
用法:sort((a,b)=>a-b)
13. toString() 把数组转换为字符串,并返回结果。
14. reverse() 反转数组的元素顺序。
15. forEach()(迭代) 数组每个元素都执行一次回调函数。
let data = [0, 3, 5, 2, 6, 7, 8];
let arr = data.forEach((item,index) => {
return "111";
})
console.log(arr) // undefined
16. map()(迭代) 通过指定函数处理数组的每个元素,并返回处理后的数组。
map 支持返回值;forEach不支持返回值。map 通过回调函数返回值 替换其中某个值,原始数组不变,以新数组返回
let data = [0, 3, 5, 2, 6, 7, 8];
let arr = data.map((item,index) => {
return ++item;
})
console.log(arr) // [1, 4, 6, 3, 7, 8, 9]
17. filter()(迭代)检测数值元素,并返回符合条件所有元素的数组。
filter:依次迭代数组中的每一项,每次迭代都把回调函数执行。检测回调函数执行的返回值,如果返回的是true,那么这一项就被筛选到了;返回的是false,则把这一项过滤掉,原始数组不变,以新数组形式返回;如果没有任何符合条件的项,最后则返回空数组。
let data = [0, 3, 5, 2, 6, 7, 8];
let arr = data.filter(item => {
return item > 2; // 条件:只要每一项大于2的
})
console.log(arr) // [3, 5, 6, 7, 8]
18. find() (迭代)返回符合传入测试(函数)条件的数组元素。
// 与filter不同的是,find只筛选出第一个符合条件的值;如果一项都没有,则返回undefined
let data = [0, 3, 5, 2, 6, 7, 8];
let arr = data.find(item => {
return item > 2;
})
console.log(arr) // 3
19. findIndex() (迭代)返回符合传入测试(函数)条件的数组元素索引。
20. some() (迭代)检测数组元素中是否有元素符合指定条件,只要有一项符合条件,结果就是true
21. every() (迭代)检测数组的每个元素是否都符合条件,所有项都必须符合条件,结果才是true
22. reduce()(迭代)将数组元素计算为一个值(从左到右)
// reduce:依次迭代数据中的每一项,并且可以累积每一次处理的结果
let arr = [2, 3, 4, 5];
求和方式一:
let sum1 = arr.reduce((result, item, index)=>{
// 循环第一轮:result=2 (获取数组第一项) item=3,index=1 (从数组第二项开始迭代) 得到5
// 循环第二轮:result=5 (获取上一次回调函数处理的结果) item=4,index=2 得到9
// 循环第三轮:result=9 item=5,index=3 得到14
return result + item
});
console.log(sum1) // 14
求和方式二:
let sum2 = arr.reduce((result, item, index)=>{
// 循环第一次 result=10,item=2,index=0 result设置了初始值,数组从第一项开始迭代
// ...
return result + item
},10);
console.log(sum2) // 24
23. reduceRight() (迭代)将数组元素计算为一个值(从右到左)
24. fill(value[,start[,end]]) 填充数组(不传递索引,每一项都填充为value; 设置索引,只把找到的索引项内容进行填充)【es6】
25. flat(数字 / Infinity)数组扁平化 【es6】【不兼容IE】
let arr = [1, [2, [3, [4, 5]]]] // 这是个四维数组
arr = arr.flat(2) // 传2 降2维度
console.log(arr) // [1, 2, 3, [4, 5]]
arr1 = arr.flat(Infinity) // Infinity 无穷大
console.log(arr1) // [1, 2, 3, 4, 5]
Array 静态私有属性方法,用法:Array.xxx()
1. isArray() 判断对象是否为数组 【es5】
2. form() 通过给定的对象中创建一个数组。
把类数组(或者Set)转换为数组【es6】
3. of() 创建新数组,并为其准备数组中的内容【es6】