学了这么久js觉得有必要好好总结一下常用的一些数组方法。
提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加
例如:第一章 Python 机器学习入门之pandas的使用
提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
一、Array.isArray()
此方法用于判断传入值是否为一个数组,代码如下:
var arr=[1,2,3,4,5]
res=Array.isArray(arr)
console.log(res) //true
二、Array.of()
此方法返回一个传入参数组成的数组,代码如下:
console.log(Array.of(1,0,0)) //[1,0,0]
三、pop()
pop() 方法将删除 arrayObject 的最后一个元素,把数组长度减 1,并且返回它删除的元素的值。如果数组已经为空,则 pop() 不改变数组,并返回 undefined 值。
var arr=[1,2,3,4,5]
a=arr.pop()
console.log(arr,a) //[1,2,3,4] 5
pop()会改变原数组
四、shift()
shift()方法删除数组第一个元素,改变原数组,返回被删除的元素
var arr=[1,2,3,4,5]
a=arr.shift()
console.log(arr,a)//[ 2, 3, 4, 5 ] 1
shift()会改变原数组
五、push()
此方法向数组末尾添加一个元素,改变原数组,返回添加后数组的length。
c=arr.push(2)
console.log(c,arr)//6 [ 1, 2, 3, 4, 5, 2 ]
push()会改变原数组
六、unshift()
此方法向数组开头添加一个元素,改变原数组,返回添加后数组的length
c=arr.unshift(2)
console.log(c,arr) //6 [ 2, 1, 2, 3, 4, 5 ]
unshift()会改变原数组
七、reverse()
此方法会反转一个数组,改变原数组,返回反转后的数组
arr.reverse()
console.log(arr) //[5,4,3,2,1]
reverse()会改变原数组
八、sort()
此方法将数组进行排序,改变原数组。接收一个非必填参数,此参数代表排序的规则(默认不传参数字按升序)
但我们要思考一个问题,如果对数组中的元素按照我们自己想定义的顺序排序应该如何做呢?
这里我们就要传入一个比较函数了:
该函数比较两个值的大小,然后返回一个用于说明这两个值的相对顺序的数字。
比较函数应该具有两个参数 a 和 b,其返回值如下:
若 a 小于 b,即 a - b 小于零,则返回一个小于零的值,数组将按照升序排列。
若 a 等于 b,则返回 0。
若 a 大于 b, 即 a - b 大于零,则返回一个大于零的值,数组将按照降序排列。
arr.sort((a,b)=>
{
return b-a
})
console.log(arr) //降序
arr.sort((a,b)=>
{
return a-b
})
console.log(arr)//升序
sort()会改变原数组
九、splice()
splice() 方法用于添加或删除数组中的元素。
arr.splice(0,0,'abbc') //直接不删除元素只插入元素
console.log(arr)
arr.splice(0,2)
console.log(arr) //删除0、1两项元素
arr.splice(0,2,'a')
console.log(arr) // 删除0、1两项元素后插入 ‘a’
splice()会改变原数组
十、slice()
slice() 方法可从已有的数组中返回选定的元素。
在这里插入图片描述
var a=arr.slice(0,3)
console.log(a,arr) //[ 1, 2, 3 ] [ 1, 2, 3, 4, 5 ]
十一、fill()
fill() 方法用于将一个固定值替换数组的元素。
语法:
array.fill(value, start, end) 左闭右开
arr.fill('aaa',0,3)
console.log(arr) //[ 'aaa', 'aaa', 'aaa', 4, 5 ]
fill()会改变原数组
十二、join()
join() 方法用于把数组中的所有元素转换一个字符串。
元素是通过指定的分隔符进行分隔的。
语法:array.join(separator)
s=arr.join()
console.log(s) //1,2,3,4,5
十三、concat()
concat() 方法用于连接两个或多个数组。
该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。
语法:arrayObject.concat(arrayX,arrayX,…,arrayX)
注意:如果参数是数组,则添加的是数组中的值而不是该数组
var arr2=[1,2,3]
var newArr=arr.concat(arr2)
console.log(arr,arr2,newArr)//[ 1, 2, 3, 4, 5 ] [ 1, 2, 3 ] [1, 2, 3, 4,5, 1, 2, 3]
十三、toString()
此方法可以将一个一维或者多维数组转化为字符串,不改变原数组
var arr = [1,2,3,4,5];
var arr1 = [1,2,[3,4],[5,6],7]
a=arr.toString()
s=arr1.toString()
console.log(a) //1,2,3,4,5
console.log(s) //1,2,3,4,5,6,7
十四、indexOf()
此方法用来查找数组中某一项的下标值,从左往右查找,不改变原数组,不存在返回-1
注意:当数组是多维的时候,若待查找数组存在于某维内部,找不到 如下:
var arr1 = [1,2,[3,4],[5,6],7]
console.log(arr1.indexOf(7)) //4
console.log(arr1.indexOf(3)) //-1
十四、lastIndexOf()
此方法也是用来查找数组中某一项的下标值,从右往左查找,不改变原数组
注意:当数组是多维的时候,若待查找数组存在于某维内部,找不到 如下:
var arr1 = [1,2,[3,4],[5,6],7]
console.log(arr1.lastIndexOf(7)) //4
console.log(arr1.lastIndexOf(3)) //-1
十五、includes()
此方法用来查找数组中某一项是否存在,返回true或者false。
注意:当数组是多维的时候,若待查找数组存在于某维内部,找不到 如下:
var arr1 = [1,2,[3,4],[5,6],7]
console.log(arr1.includes(3)) //false
十六、总结
可以改变数组本身的方法有:
pop、push、shift、unshift、reverse、fill、sort、splice
不改变自身的方法有:
concat、includes、join、slice、indexOf、lastindexOf