数组方法大全
1、array.length:
- 设置或返回数数组中的元素的个数;
- 设置length属性的值来截断任何数组;
2、Array.isArray():
- 用于确定传递非值是否是一个Array
- Array.isArray([]) => true;
- Array.isArray({}) => false;
4、Array.of():
- Array.of(7) => [7]
- Array.of(1, 2, 3) => [1, 2, 3]
- Array(7) => [ , , , , , , ]
- Array(1, 2, 3) => [1, 2, 3]
5、concat():
- 方法用于合并两个或多个数组,此方法不会更改现有数组,而是返回一个新的数组
- var arr1 = ['1', '2']
- var arr2 = ['3', '4']
- var arr3 = ['5']
- var arr4 = arr1.concat(arr2, arr3)
- console.log(arr4) // ['1', '2', '3', '4', '5'] //arr4 is a new array
6、filter():
- 创建一个新数组,其包含通过所提供函数所实现的测试的所有元素
- var arr = [1, 10, 20, 30]
- var ber = arr.filter((item) => {})
- return item > 10
- // [20, 30]
7、find():
- 返回数组中满足提供的测试函数的第一个元素的值
- function enf (num) {}
- return num >= 15
- [12, 5, 130, 45].find(enf)
- // 130
8、findIndex():
- 返回数值中满足提供的测试函数的第一个元素的索引
- function enf (num) {}
- return num >= 15
- [12, 5, 130, 44].findIndex(enf)
- // ‘3’
9、forEach():
- 方法对数组的每一个元素执行一次提供的函数
- array.forEach(callback(currentValue, index, array) {})
- // do something
10、includes():
- 用来判断一个数组是否包含一个指定的值,如果是,酌情返回true或false
- let a = [1, 2, 3]
- a.includes(2)
- // true
- a.includes(4)
- // false
11、indexOf():
- 返回在数组汇总可以找到的一个给定元素的第一个索引,如果不存在,则返回-1
- 当查找的元素在数组中有的话就返回元素在数组中对应的下标位置
- 如果查找的元素在数组中并没有的话就返回-1,所有没有的、找不到的返回的都是-1
12、join():
- 将数组(或一个类数组对象)的所有元素连接到一个字符串中
- let a = [‘1’, ‘2’, ‘3’]
- a.join(‘,’)
- // 默认为“join(‘,’)”, 也可以直接join()
- // ‘1, 2, 3’
13、lastIndexOf():
- 返回指定元素(也即有效的JavaScript值或变量)在数组中的最后一个的索引,如果不存在则返回-1.从数组的后面向前查找;
14、map():
- 创建一个新数组,其结果是该数组中的每一个元素都调用一个提供的函数后返回的结果;
15、pop():
- 从数组中删除最后一个元素,并返回该元素的值,此方法会更新数组的长度
- let a = [1, 2, 3, 4]
- a.length // 4:是数组的长度
- a.pop() // 4:是删除的那个元素
16、push():
- 将一个或多个元素添加到数组的末尾;
17、reverse:
- 方法将数组中元素的位置颠倒;
18、shift():
- 从数组中删除第一个元素,并返回该元素的值,此方法更新数组的长度;
19、slice:
- 返回一个从开始到结束(不包括结束)选择的数组的一部分浅拷贝到一个新数组对象;
20、sort():
- 从小到大对数组的元素进行排序,并返回数组;
21、toLocaleString():
- 返回一个字符串表示数组中的元素,数组中的元素将使用toLocaleSting方法转成字符串,这些字符串将使用一个特定语言环境的字符串(例如一个逗号‘,’)隔开:
- var number = 1337
- var date = new Date()
- var myArr = [number, date, 'foo']
- var str = myArr.toLocaleString()
- console.log(str)
- // 输出‘1, 337, 2017/8/13 下午8:32:24, foo’
- // 假定运行在中文(zh-CN)环境,北京时区
22、toString():
- 返回一个字符串,表示指定的数组及元素;
23、unshift():
- 将一个或多个元素添加到数组的开头,并返回新数组的长度;
24、copyWithin(target,start, end):
- 浅拷贝数组的一部分到同一数组中的另一个位置;
25、every(callback):
- 方法测试数组的所有元素是否都通过了指定函数的测试;
26、fill():
- 用一个固定值填充一个数组中从起始索引内的全部元素
- arr.fill(value, start, end)
- var numbers = [1, 2, 3]
- numbers.fill(1)
- //results in [1, 1, 1]
27、array.from():
- 对伪数组或可迭代对象(包括argument Array,map,set,string...)转换成数组对象;
- 语法:Array.from(arrayLike), mapFn、thisArg)
- arrayLike:想要转换成数组的伪数组对象或可迭代对象;
- mapFn(可选参数):如果指定了该参数,新数组中的每个元素会执行该回调函数;
- thisArg(可选参数):执行回调函数mapFn时this对象;
- 返回值:一个新的数组实例;
28、copyWithin(target,start,end):
- 浅拷贝数组的一部分到同一数组中的另一个位置
29、every(callback):
- 方法测试数组的所有元素是否都通过了指定函数的测试;
30、reduce():
- 累加器和数组中的每个元素(从左到右)应用一个函数
- var total = [0, 1, 2, 3].reduce(function (sum, value) {}, 0)
- return sum + value
- // total is 6
31、reduceRight():
- 接收一个函数作为累加器和数组的每一个值(从右到左)将其减少为单个值
- let flattened = [[0, 1], [2, 3], [4, 5]].reduceRight((a, b) => {}, [])
- return a.concat(b)
32、some():
- 测试数组中的某些元素是否通过由提供的函数实现的测试
- const isBiggerThen10 = (element, index, array) => {}
- return element > 10
- [2, 5, 8, 1, 4].some(isBiggerThen10)
- // false
- [12, 5, 8, 1, 4].some(isBiggerThen10)
- // true