Array常用函数收藏
1.isArray
语法:Array.isArray(obj)
说明:判断一个对象是否是数组。
例如:
Array.isArray([]); Array.isArray([1]); Array.isArray(new Array()); // Little known fact: Array.prototype itself is an array: Array.isArray(Array.prototype); // all following calls return false Array.isArray();
2.
concat
语法:var new_array = old_array.concat(value1[, value2[, ...[, valueN]]])
说明:把多个数组串联成一个新数组
例如:
var alpha = ['a', 'b', 'c']; var numeric = [1, 2, 3]; alpha.concat(numeric); // result in ['a', 'b', 'c', 1, 2, 3]
3.every
语法:arr.every(callback[, thisArg])
说明:测试是否数组中所有的元素都满足测试条件
例如:
function isBigEnough(element, index, array) { return element >= 10; } [12, 5, 8, 130, 44].every(isBigEnough); // false [12, 54, 18, 130, 44].every(isBigEnough); // true
4.filter
语法:var newArray = arr.filter(callback[, thisArg])
说明:过滤满足条件的元素
例如:
function isBigEnough(value) { return value >= 10; } var filtered = [12, 5, 8, 130, 44].filter(isBigEnough); // filtered is [12, 130, 44]
5.find
语法:arr.find(callback[, thisArg])
说明:查找数组中满足条件的第一个元素
例如:
function isBigEnough(element) { return element >= 15; } [12, 5, 8, 130, 44].find(isBigEnough); // 130
6.findIndex
语法:arr.findIndex(callback[, thisArg])
说明:查找满足条件的第一个元素的索引
例如:
function isBigEnough(element) { return element >= 15; } [12, 5, 8, 130, 44].findIndex(isBigEnough); // 3rd element in the Array is returned, it will result in '130'
7.includes
语法:
arr.includes(searchElement) arr.includes(searchElement, fromIndex)
说明:判断数组是否包含指定的元素,第二个参数表示从哪个索引开始查询
例如:
[1, 2, 3].includes(2); // true [1, 2, 3].includes(4); // false [1, 2, 3].includes(3, 3); // false [1, 2, 3].includes(3, -1); // true [1, 2, NaN].includes(NaN); // true
8.indexOf
语法:
arr.indexOf(searchElement) arr.indexOf(searchElement, fromIndex)
说明:查询元素在数组中的索引位置,如果不在数组中,返回-1
例如:
var array = [2, 9, 9]; array.indexOf(2); // 0 array.indexOf(7); // -1 array.indexOf(9, 2); // 2 array.indexOf(2, -1); // -1 array.indexOf(2, -3); // 0
9.join
语法:
arr.join() arr.join(separator)
说明:把数组通过自定的连接符串联成一个字符串,separator默认为“,”
例如:
var a = ['Wind', 'Rain', 'Fire']; a.join(); // 'Wind,Rain,Fire' a.join('-'); // 'Wind-Rain-Fire'
10.lastIndexOf
语法:
arr.lastIndexOf(searchElement) arr.lastIndexOf(searchElement, fromIndex)
说明:返回能在数组中查到元素的最后的一个索引,查询不到返回-1
例如:
var numbers = [2, 5, 9, 2]; numbers.lastIndexOf(2); // 3 numbers.lastIndexOf(7); // -1
语法:var new_array = arr.map(callback[, thisArg])
说明:根据提供函数的公式返回一个新数组
例如:
var numbers = [1, 4, 9]; var roots = numbers.map(Math.sqrt); // roots is now [1, 2, 3] // numbers is still [1, 4, 9]
12.pop
语法:arr.pop()
说明:从数组中移出最后一个元素,并返回该元素
例如:
var a = [1, 2, 3]; a.pop(); console.log(a); // [1, 2]
13.reverse
语法:a.reverse()
说明:将数组倒序排列
例如:
var a = ['one', 'two', 'three']; a.reverse(); console.log(a); // ['three', 'two', 'one']
语法:arr.shift()
说明:从数组中移出第一个元素,并返回该元素
例如:
var a = [1, 2, 3]; var b = a.shift(); console.log(a); // [2, 3] console.log(b); // 1
语法:
arr.slice()
arr.slice(begin)
arr.slice(begin, end)
说明:从数组指定的位置深拷贝数组并返回新数组,end表示拷贝结束的索引位置,但不包含end数字
例如:
var fruits = ['Banana', 'Orange', 'Lemon', 'Apple', 'Mango']; var citrus = fruits.slice(1, 3); // fruits contains ['Banana', 'Orange', 'Lemon', 'Apple', 'Mango'] // citrus contains ['Orange','Lemon']
16.sort
语法:
arr.sort() arr.sort(compareFunction)
说明:按指定的函数规则排序,默认是按照字符串的unicode编码排序。如果a小于b,a在b之前,如果a大于b则a在b之后,如果a等于b则a在b之前并且相邻。
function compare(a, b) { if (a is less than b by some ordering criterion) { return -1; } if (a is greater than b by the ordering criterion) { return 1; } // a must be equal to b return 0; }
例如:
var numbers = [4, 2, 5, 1, 3]; numbers.sort(function(a, b) { return a - b; }); console.log(numbers); // [1, 2, 3, 4, 5]
17.splice
语法:
array.splice(start) array.splice(start, deleteCount) array.splice(start, deleteCount, item1, item2, ...)
说明:通过移除或者增加一些元素而改变数组。start表示改变数组的起始索引,deleteCount表示移除元素的个数,item1...itemn表示在start之后新增的元素
例如:
//从索引2移除0个元素并插入一个元素 ar myFish = ['angel', 'clown', 'mandarin', 'sturgeon']; var removed = myFish.splice(2, 0, 'drum'); // myFish is ["angel", "clown", "drum", "mandarin", "sturgeon"] // removed is [], no elements removed //从所以2移除1个元素 var myFish = ['angel', 'clown', 'drum', 'mandarin', 'sturgeon']; var removed = myFish.splice(3, 1); // removed is ["mandarin"] // myFish is ["angel", "clown", "drum", "sturgeon"]
语法:arr.unshift([element1[, ...[, elementN]]])
说明:增加一个或者若干个元素到数组的开始位置
例如:
var a = [1, 2, 3]; a.unshift(4, 5); console.log(a); // [4, 5, 1, 2, 3]