ES5:
concat():连接两个或更多的数组,并返回结果。
var arr=[10,20,30]
var arr2=["hello","world"]
var arr3=arr.concat(arr2,100,{name:"Rose"})
console.log(arr3) //[10, 20, 30, 'hello', 'world', 100, {name:"Rose"}]
join():把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。
var arr=[1,2,3,4]
var re=arr.join("*") //不传参默认是逗号
console.log(re) //1*2*3*4
pop():删除并返回数组的最后一个元素
var arr=[10,20,34]
var re=arr.pop()
console.log(re,arr) //34 [10,20]
// 删完了返回undefined,空数组
push():向数组的末尾添加一个或更多元素,并返回新的长度。
var arr=[10,20,30]
var re=arr.push(50,39)
console.log(re,arr) //5 [10, 20, 30, 50, 39]
reverse():颠倒数组中元素的顺序。
var arr=["hello","world"]
var re=arr.reverse()
console.log(re,arr) //['world', 'hello'] ['world', 'hello']
shift():删除并返回数组的第一个元素
var arr=[10,20,30,40]
var re=arr.shift()
console.log(re,arr) //10 [20, 30, 40]
unshift():向数组的开头添加一个或更多元素,并返回新的长度
var arr=[10,20,30,40]
var re=arr.unshift(99,77)
console.log(re,arr) //6 [99, 77, 10, 20, 30, 40]
slice():从某个已有的数组返回选定的元素
var arr=["hello","world",999]
var re=arr.slice(1)
console.log(re,arr) //['world', 999] ['hello', 'world', 999]
sort():对数组的元素进行排序
var arr=[1,2,3,4,99]
var re=arr.sort()
console.log(arr,re) //[1, 2, 3, 4, 99] [1, 2, 3, 4, 99]
var arr=[10,90,40,55,33,87]
var re=arr.sort(function(a,b){
return b-a //a-b正序排列,b-a倒序排列
})
console.log(re,arr) //[90, 87, 55, 40, 33, 10] [90, 87, 55, 40, 33, 10]
splice():删除元素,并向数组添加新元素。
var arr=[10,20,3,40,89]
var re=arr.splice(2,1,"hello","world")
//从下标为2的开始删除一个元素,并添加hello h5到被删除元素的位置
console.log(re,arr,arr.length) //[3] [10, 20, 'hello', 'world', 40, 89] 6
toSource():返回该对象的源代码。(存疑)
toString():把数组转换为字符串,并返回结果
var arr=[1,2,"good"]
var re=arr.toString()
console.log(arr,re) //[1, 2, 'good'] '1,2,good'
toLocaleString():把数组转换为本地数组,并返回结果。 (存疑)
valueOf():返回数组对象的原始值
var arr=["good","luck"]
var re=arr.valueOf()
console.log(arr,re) //['good', 'luck'] ['good', 'luck']
ES6新增:
Array.of():将参数中所有值作为元素形成数组。
console.log(Array.of(null,33,"good",99)) //[null,33,"good",99]
Array.from():将类数组对象或可迭代对象转化为数组。
var myMap=new Map()
myMap.set("a1","b1")
myMap.set("a2","b2")
console.log(Array.from(myMap)) //[["a1","b1"],["a2","b2"]]
var arr=[1,2,3]
var set=new Set(arr)
console.log(Array.from(set)) //[1,2,3]
var str="abc"
console.log(Array.from(str)) //["a","b","c"]
find():查找数组中符合条件的元素,若有多个符合条件的元素,则返回第一个元素。
var arr=[11,22,33,44,10,9]
var re=arr.find(function(el){
console.log(999) //两遍999
if(el>20){
return true
}})
console.log(re) //22
findIndex():查找数组中符合条件的元素索引,若有多个符合条件的元素,则返回第一个元素索引。
var arr=[9,80,66,45]
var re=arr.findIndex(function(el){
if(el>18){
return true
}})
console.log(re) //1
fill():将一定范围索引的数组元素内容填充为单个指定的值
var arr=[99,88,23,9,5,13]
var arr2=arr.fill("aaa",2,4) //索引2和3 [2,4)
console.log(arr,arr2) //[99, 88, 'aaa', 'aaa', 5, 13] [99, 88, 'aaa', 'aaa', 5, 13]
includes():数组是否包含指定值。注意:与 Set 和 Map 的 has 方法区分;Set 的 has 方法用于查找值;Map 的 has 方法用于查找键名。
var arr=[1,2,5,"thanks"]
var re=arr.includes("thanks")
console.log(re) //true
flat():嵌套数组转一维数组
var arr=[["hello","world"],40,50,[[67,71],"你好",[90,[110],100]]]
var arr2=arr.flat(3)
console.log(arr2) // ['hello', 'world', 40, 50, 67, 71, '你好', 90, 110, 100]