ES6 数组
- 1. Array.of() 创建数组
- 2. push() 向数组尾部添加一个或多个元素,返回数组中元素的个数
- 3. pop() 向数组尾部删除一个元素,返回被删除的元素
- 4. shift() 在数组头部删除一个元素,返回被删除的元素
- 5. unshift() 在数组的头部添加一个或多个元素,返回数组中元素的个数
- 6. slice() 从已有的数组中返回选定的元素
- 7. splice() 向/从数组中添加/删除元素,返回被删除的元素组成的数组
- 8. concat() 连接两个或者多个数组为一个数组,返回连接后的数组
- 9. split() 按照指定字符将字符串分割为字符串数组,返回数组
- 10. join() 按照指定的方式把数组转换为字符串,返回字符串
- 11. sort() 数组排序,默认是按照字符编码逐个字符进行排序,返回排序后的数组
- 12. Array.isArray() 判断是否为数组
- 13. forEach() 遍历每个元素
- 14. map() 遍历每个元素,返回操作后的数组
- 15. filtrer() 用于进行过滤,筛选出符合条件的元素,组成一个新的数组返回
- 16. some() 只要数组中的某一个元素符合指定的条件,就返回真,否则返回假
- 17. every() 如果数组中所有的元素都符合指定的条件,才返回true,否则返回false
- 18. includes() 方法用来判断一个数组是否包含一个指定的值,如果是返回 true,否则false
- 19. find() 方法返回通过测试(函数内判断)的数组的第一个元素的值,如果没有符合条件的则返回 undefined
- 20. findIndex() 方法返回传入一个测试条件(函数)符合条件的数组第一个元素位置
- 21. reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值
- 22. fill() 方法用于将一个固定值替换数组的元素
- 23. toString() 方法可把数组转换为字符串,并返回结果,元素直接用逗号隔开
1. Array.of() 创建数组
let array1 = Array.of(3); // [3]
let array2 = Array.of("3"); // ["3"]
let array3 = Array.of(3, 4); // [3,4]
2. push() 向数组尾部添加一个或多个元素,返回数组中元素的个数
let array = [];
let count = array.push(1); // count=1, array=[1]
count = array.push(3, 4); // count=3, array=[1,3,4]
3. pop() 向数组尾部删除一个元素,返回被删除的元素
let array = [1,2,3];
let element = array.pop(); //element=3, array=[1,2]
4. shift() 在数组头部删除一个元素,返回被删除的元素
let array = Array.of(1,2,3);
let element = array.shift(); // element=1, array=[2,3]
5. unshift() 在数组的头部添加一个或多个元素,返回数组中元素的个数
let array = new Array();
let count = array.unshift(1); // count=1, array=[1]
count = array.unshift(2,3); // count=3, array=[1,2,3]
6. slice() 从已有的数组中返回选定的元素
语法:array.slice(start, end);
参数说明:
start:必需。
规定从何处开始选取。如果是负数,从数组尾部开始算起的位置,-1 指最后一个元素,-2 指倒数第二个元素
end:可选。
规定从何处结束选取。该参数是数组片断结束处的数组下标。如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。
let array = [1,2,3,4,5,6];
let new_array = array.slice(2); // new_array=[3,4,5,6]
let new_array = array.slice(2,4) // new_array=[3,4]
7. splice() 向/从数组中添加/删除元素,返回被删除的元素组成的数组
语法:array.splice(index,count,item1,…,itemX)
参数说明:
index:必需。规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。
count:必需。要删除的元素数量。如果设置为 0,则不会删除任何元素。
item1, …, itemX: 可选。向数组添加的新元素。
注意:这个方法会改变原数组
let array = [1,2,3,4];
let back_array = array.splice(1,2) //back_array=[2,3], array=[1,4]
let back_array = array.splice(1,0,5,6,7); //back_array=[], array=[1,5,6,7,4];
8. concat() 连接两个或者多个数组为一个数组,返回连接后的数组
let a = [1,2];
let b = [3,4];
let c = [5,6];
let concat = a.concat(b); // concat=[1,2,3,4]
let concat = a.concat(b,c); // concat=[1,2,3,4,5,6]
9. split() 按照指定字符将字符串分割为字符串数组,返回数组
let str = "I,LOVE,YOU";
let back = str.split(','); // back=["I", "LOVE", "YOU"]
10. join() 按照指定的方式把数组转换为字符串,返回字符串
let array = ["I", "LOVE", "YOU"];
let str = array.join(); // 不写参数默认是join(','), str="I,LOVE,YOU"
let str = array.join(' '); // str="I LOVE YOU"
11. sort() 数组排序,默认是按照字符编码逐个字符进行排序,返回排序后的数组
let array = [1,56,20,58,16];
let sort_array = array.sort(); // sort_array=[1, 16, 20, 56, 58]
let sort_array = array.sort((a,b) => a-b); // 升序排序sort_array=[1, 16, 20, 56, 58]
let sort_array = array.sort((a,b) => b-a); // 降序排序sort_array=[58, 56, 20, 16, 1]
12. Array.isArray() 判断是否为数组
let array = [1,2];
let str = "123";
let bool = Array.isArray(array) // true
let bool = Array.isArray(str) // false
13. forEach() 遍历每个元素
语法:forEach(function(item,index,arr){})
参数说明:
item:遍历的当前元素
index:当前元素下标
arr:数组本身
该操作不会改变原数组
let array = [12,44,12,98];
array.forEach(item => {
console.log(item); //打印每个元素
})
14. map() 遍历每个元素,返回操作后的数组
参数同forEach()
在回调函数中,一定要有返回值
该操作不会改变原数组
let array = [12,44,12,98];
let map_array = array.map(item => {
item += 1;
}) // map_array=[13,45,13,99]
15. filtrer() 用于进行过滤,筛选出符合条件的元素,组成一个新的数组返回
参数同forEach()
在回调函数中,一定要有返回值
该操作不会改变原数组
let array = [12,44,12,98];
let filter_array = array.filter(item => {
item > 20;
}) //filter_array=[44,98]
16. some() 只要数组中的某一个元素符合指定的条件,就返回真,否则返回假
参数同forEach()
在回调函数中,一定要有返回值
该操作不会改变原数组
let array = [12,44,12,98];
let bool= array.some(item => {
item > 50;
}) //true
17. every() 如果数组中所有的元素都符合指定的条件,才返回true,否则返回false
参数同forEach()
在回调函数中,一定要有返回值
该操作不会改变原数组
let array = [12,44,12,98];
let bool= array.every(item => {
item > 50;
}) //false
18. includes() 方法用来判断一个数组是否包含一个指定的值,如果是返回 true,否则false
语法:arr.includes(searchElement)或者arr.includes(searchElement, fromIndex)
参数说明:
searchElement 必须。需要查找的元素值。
fromIndex 可选。从该索引处开始查找 searchElement。如果为负值,则按升序从 array.length + fromIndex 的索引开始搜索。默认为 0。
19. find() 方法返回通过测试(函数内判断)的数组的第一个元素的值,如果没有符合条件的则返回 undefined
语法:array.find(function(item, index, arr),thisValue)
参数说明:
thisValue 可选。 传递给函数的值一般用 “this” 值。如果这个参数为空, “undefined” 会传递给 “this” 值
20. findIndex() 方法返回传入一个测试条件(函数)符合条件的数组第一个元素位置
当数组中的元素在测试条件时返回 true 时, findIndex() 返回符合条件的元素的索引位置,之后的值不会再调用执行函数。
如果没有符合条件的元素返回 -1
21. reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值
语法:array.reduce((previousValue, currentValue, currentIndex, array) => { /* … */ }, initialValue)
参数说明:
(1) callbackFn 一个回调函数,包含四个参数:
- previousValue:上一次调用 callbackFn 时的返回值。在第一次调用时,若指定了初始值 initialValue,其值则为 initialValue,否则为数组索引为 0 的元素 array[0]。
- currentValue:数组中正在处理的元素。在第一次调用时,若指定了初始值 initialValue,其值则为数组索引为 0 的元素 array[0],否则为 array[1]。
- currentIndex:数组中正在处理的元素的索引。若指定了初始值 initialValue,则起始索引号为 0,否则从索引 1 起始。
- array:用于遍历的数组。
(2) initialValue 可选
作为第一次调用 callback 函数时参数 previousValue 的值。若指定了初始值 initialValue,则 currentValue 则将使用数组第一个元素;否则 previousValue 将使用数组第一个元素,而 currentValue 将使用数组第二个元素。
let array = [1,2,3,4,5];
let result = array.reduce((x,y) => x+y); // result=15
let result = array.reduce((x,y) => x+y, 10); // result=25
let result = array.reduce((x,y) => x*y, 10); // result=1200
22. fill() 方法用于将一个固定值替换数组的元素
语法:array.fill(value, start, end)
value 必需。填充的值。
start 可选。开始填充位置。
end 可选。停止填充位置 (默认为 array.length)
注意:该操作会改变自身数组
let fruits = ['apple', 'orange', 'banana','mango'];
fruits.fill('lemon', 2,4); //fruits=["apple", "orange", "lemon", "lemon"]
23. toString() 方法可把数组转换为字符串,并返回结果,元素直接用逗号隔开
let fruits = ['apple', 'orange', 'banana','mango'];
let str = fruits.toString(); // str="apple,orange,lemon,lemon"