JavaScript数组方法速查手册极简版中共收了32个数组的常用方法和属性,并根据方法的用场进行重新排序和分类,在文中简要的先容了方法浸染和用例解释。收藏备用吧!
文中先容的过于大略,想更更多理解干系内容还是要多多动手实践!
2 数组属性

2.1 length-长度属性
每个数组都有一个length属性。针对稠密数组,length属性值代表数组中元素的个数。当数组是稀疏数组时,length属性值大于元素的个数。
var array1 = [ 'a', 'b', 'c' ]; console.log(array1.length); // 输出 3array1.length = 2;console.log(array1); // 输出 [ \"大众a\"大众, \"大众b\"大众 ]
3 数组方法
3.1 Array.isArray-类型剖断
Array.isArray() 数组类型剖断。
console.log(Array.isArray([1, 2, 3])); // 输出 trueconsole.log(Array.isArray({num: 123})); //输出 false
3.2 Array.of-创建数组
Array.of() 从可变数量的参数创建数组,不管参数的数量或类型如何。
console.log(Array.of(3)); // 输出 [3]console.log(Array.of(1,2,3)); // 输出 [1,2,3]
3.3 Array.from-创建数组
Array.from() 用类数组或可迭代工具创建新数组。
console.log(Array.from('abcd')); // 输出 [ \"大众a\"大众, \公众b\"大众, \公众c\"大众, \"大众d\"大众 ]console.log(Array.from([1, 2, 3], x => x + 1)); // 输出 [ 2, 3, 4 ]
4 数组原型方法
4.1 查找元素
4.1.1 find-按函数查找
Array.prototype.find() 找到第一个知足检测函数条件的元素,并返回该元素,没找到则返回 undefined。
var array1 = [1, 2, 3, 4, 5];console.log(array1.find(x => x > 3)); // 输出 4
4.1.2 findIndex-按函数查找
Array.prototype.findIndex() 找到第一个知足检测函数条件的元素,并返回该元素索引。找不到返回-1。
var array1 = [6, 7, 8, 9, 10];console.log(array1.findIndex(x => x > 8)); // 输出 3
4.1.3 indexOf-按元素值查找
Array.prototype.indexOf() 查找元素并返回元素索引值,找不到返回-1。
var arr= [1, 2, 3, 4];console.log(arr.indexOf(3)); // 输出 2console.log(arr.indexOf(6)); // 输出 -1console.log(arr.indexOf(2, 2)); // 输出 -1
第二个参数表示查找的起始位置。
4.1.4 lastIndexOf-按元素值查找
Array.prototype.lastIndexOf() 从后向前查找元素并返回元素索引值,找不到返回 -1。
var arr = ['a', 'b', 'c', 'd'];console.log(arr.lastIndexOf('b')); // 输出 1console.log(arr.lastIndexOf('e')); // 输出 -1
4.2 添加元素
4.2.1 push-尾部添加
Array.prototype.push() 在尾部添加一个或多个元素,返回数组的新长度。
var array1= ['a', 'b', 'c'];console.log(array1.push('d')); // 输出 4console.log(array1); // 输出 [ \"大众a\"大众, \"大众b\"大众, \"大众c\"大众, \公众d\公众 ]
4.2.2 unshift-头部添加
Array.prototype.unshift() 在头部添加一个或多个元素,并返回数组的新长度。
var array1 = [ 4, 5, 6 ];console.log(array1.unshift(3)); // 输出 4console.log(array1); // 输出 [ 3, 4, 5, 6 ]console.log(array1.unshift(1, 2)); // 输出 6console.log(array1); // 输出 [ 1, 2, 3, 4, 5, 6 ]
4.3 删除元素
4.3.1 pop-尾部删除
Array.prototype.pop() 从尾部删除一个元素,并返回该元素。
var array1= ['a', 'b', 'c', 'd'];console.log(array1.pop()); // 输出 dconsole.log(array1); // 输出 [ \"大众a\"大众, \"大众b\"大众, \公众c\"大众 ]
4.3.2 shift-头部删除
Array.prototype.shift() 从头部删除一个元素,并返回该元素。
var array1 = [1, 2, 3];console.log(array1.shift()); // 输出 1console.log(array1); // 输出 [ 2, 3 ]
4.4 更换元素
4.4.1 splice-添加更换删除
Array.prototype.splice() 添加、更换、删除元素。会改变原数组。
var array1 = [ 'a', 'c', 'd' ];array1.splice( 1, 0, 'b');console.log(array1); // 输出 [ \"大众a\"大众, \"大众b\公众, \"大众c\"大众, \"大众d\"大众 ]array1.splice(1,1);console.log(array1); // 输出 [ \"大众a\公众, \"大众c\"大众, \公众d\"大众 ]array1.splice(1,1,'bb','cc');console.log(array1); // 输出 [ \"大众a\"大众, \"大众bb\"大众, \"大众cc\"大众, \公众d\"大众 ]
array.splice(start[, deleteCount[, item1[, item2[, ...]]]])
参数 start:表示更换的位置参数 deleteCount :表示删除元素的数量参数 item1... : 表示添加的元素4.5 顺序干系
4.5.1 sort-排序
Array.prototype.sort() 数组排序,改变原数组。
var array1 = [ 4, 3, 10, 2 ];console.log(array1.sort()); // 输出 [ 10, 2, 3, 4 ]console.log(array1.sort((x1, x2) => x1 > x2)); // 输出 [ 2, 3, 4, 10 ]
4.5.2 reverse-反序
Array.prototype.reverse() 颠倒数组,并返回新数组。会改变原数组。
var sourceArray= [ 'a', 'b', 'c' ];var reverseArray = sourceArray.reverse();console.log(reverseArray); // 输出 [ \"大众c\公众, \公众b\"大众, \公众a\"大众 ]console.log(sourceArray == reverseArray); // 输出 true
4.6 遍历迭代
4.6.1 keys-键迭代器
Array.prototype.keys() 数组的键迭代器。
var array1 = ['a', 'b', 'c'];for (let key of array1.keys()) { console.log(key); // 输出 0, 1, 2}
4.6.2 values-值迭代器
Array.prototype.values() 数组的值迭代器。
const array1 = ['a', 'b', 'c'];const iterator = array1.values();for (const value of iterator) { console.log(value); // 输出 a b c}
4.6.3 entries-键/值对迭代器
Array.prototype.entries() 数组的键/值对迭代器。
var array1 = ['a', 'b', 'c'];var iterator1 = array1.entries();console.log(iterator1.next().value); // 输出 Array [0, \公众a\公众]console.log(iterator1.next().value); // 输出 Array [ 1, \"大众b\"大众 ]
4.6.4 forEach-遍历
Array.prototype.forEach() 遍历数组中的元素,并实行回调函数。
var arr = [1, 2, 3, 4];arr.forEach(function (x) { console.log(x + 1); // 输出 2 3 4 5});
4.7 检测
4.7.1 includes-值包含检测
Array.prototype.includes() 值包含检测,如包含返回 true,不包含返回false。
var array1 = [1, 2, 3];console.log(array1.includes(2)); // 输出 trueconsole.log(array1.includes(4)); // 输出 false
4.7.2 some-函数包含检测
Array.prototype.some() 检测数组中是否有元素可以通过检测函数验证。
var array1 = [ 1, 2, 3, 4 ];console.log(array1.some(x => x >3)); // 输出 trueconsole.log(array1.some(x => x > 5)); // 输出 false
4.7.3 every-函数完备检测
Array.prototype.every() 检测数组中是否所有元素都可以通过检测函数验证。
var array1 = [ 1, 2, 3, 4, 5 ];console.log(array1.every(x => x < 8)); //输出 trueconsole.log(array1.every(x => x < 4)); //输出 false
4.8 合并
4.8.1 join-合并成字符串
Array.prototype.join() 合并数组中所有元素成为字符串并返回。
var array1= [ 'a', 'b', 'c' ];console.log(array1.join()); // 输出 a,b,cconsole.log(array1.join(\公众-\"大众)); // 输出 a-b-c
4.9 累计
4.9.1 reduce-左侧累计
Array.prototype.reduce() 从左至右按 reducer 函数组合元素值,并返回累计器终值。
const array1 = [1, 2, 3, 4];const reducer = (accumulator, currentValue) => accumulator + currentValue;// 1 + 2 + 3 + 4console.log(array1.reduce(reducer)); // 输出 10// 5 + 1 + 2 + 3 + 4console.log(array1.reduce(reducer, 5)); // 输出 15,个中5是累计器初始值。
5 结尾
5.1 结语
文中先容的过于大略,想更多理解干系内容还是要多多动手实践!
因韶光不敷,能力有限等缘故原由,存在笔墨阐述不准及代码测试不敷等诸多问题。如创造缺点请不吝示正!
感激。
来源:慕课网
原文链接:https://zhuanlan.zhihu.com/p/64664862