数组API
arryay.concat():
concat()方法用于合并两个或多个数组,不会更改现有数组,而是返回一个新数组
语法:
var new_array=old_array.concat(value1[,value2[,...]])
const array1=[1,2]
const array2=[3,4]
const array3=array,.concat(array2)
console.log(array3);
'Array[1,2,3,4]'
array.every():
every方法测试一个数组内的所有元素是否都能通过某个指定函数测试,它返回一个布尔值
注:若收到一个空数组,此方法在一切情况下都会返回true
语法:
array.every(callback(element,index,array))
element用于测试的当前值
index可选,用于测试的当前值的索引
array可选,调用every的当前数组
const isBelow=(currentValue)=>currentValue<40
const arr=[1,30,39,29,10]
console.log(arr.every(isBelow))
true
array.fill():
fill()方法用于一个固定值填充一个数组中从起始索引到终止索引内的全部元素,不包括终止索引
语法:
arr.fill(value,start,end)
value 用于填充数组元素的值
start 可选,起始索引,默认为0
end可选,终止索引,默认为this.length
返回值
修改后的数组
arr.filter():
filter()方法创建一个新数组,其包含通过所提供函数实现的测试的所有元素。
语法:
var newArray = arr.filter(callback(element,index,array))
element数组中当前正在处理的元素
index 可选,正在处理元素在数组中的索引
array可选,调用了filter的数组本身
返回值
一个新的,由通过测试的元素组成的数组,如果没有任何数组元素通过测试,则返回空数组。
function isBig(element){
return element >=10
}
var filtered=[12,5,8,62].filter(isBig)
console.log(filtered)
[12,62]
arr.find()
find()方法返回数组中满足提供的测试函数的第一个元素的值,否则返回undefined.
语法:
arr.find(callback(element,index,array))
element当前遍历到的元素
index 可选,当前遍历到的索引
array可选,数组本身
返回值:
数组中第一个满足所提供函数的元素的值,否则返回undefined
const arr=[5,6,15,6,68]
const found=arr.find(element=>element>10)
console.log(found)
15
arr.findIndex()
findIndex()方法返回数组中满足提供的测试函数的第一个元素的索引,若没有找到对应元素则返回-1.
语法
arr.findIndex(callback(…))
-
callback:针对数组中的每个元素,都会执行该回调函数,执行时会自动传入下面三个参数
element 当前元素
index 当前元素的索引
array 调用findIndex的数组
const arr=[5,12,8,130,44]
const isLarge=(element)=>element>13;
console.log(arr.findindex(islarge))
3
arr.flat()
flat()方法会按照一个可指定的深度递归遍历数组,并将所有元素与遍历到的子数组中元素合并为一个新的数组返回。
语法
var newArray=arr.flat([depth])
depth 可选,指定要提取嵌套的结构深度,默认值为1.
const arr1=[0,1,2,[3,4]]
console.log(arr1.flat())
[0,1,2,3,4]
arr.forEach()
forEach()方法对数组的每个元素执行一次给的函数
语法
arr.forEach(callback())
为数组中每个元素执行的函数,该函数接收一至三个参数
currentValue 数组中正在处理的当前元素
index可选,数组中正在处理的当前元素的索引
array可选,forEach()方法正在操作的数组
返回值:undefined
const arr=['a','b','c']
arr.forEach(element=>console.log(element))
"a"
"b"
"c"
arr.from()
from()方法从一个类似数组或可迭代对象创建一个新的,浅拷贝的数组实例
语法
arr.from(arrayLike[])
arrayLike 想要转换成数组的伪数组对象或可迭代对象
mapFn 可选,指定了该参数,新数组中的每个元素会执行该回调函数
console.log(arr.from('foo'))
Array ["f","o","o"]
console.log(arr.from([1,2,3],x=>x+x))
Array[2,4,6]
arr.includes()
includes()方法用来判断一个数组是否包含一个指定值,根据情况,如果包含则返回tue,否则返回false。
语法
arr.includes(value)
value需要查找的元素值
const arr=[1,2,3]
console.log(arr.includes(2))
true
arr.indexof()
indexof()方法返回数组中可以找到一个给定元素的第一个索引,如果不存在,则返回-1.
语法:
arr.indexof(searchElement(fromIndex))
searchElement 要查找的元素。
fromIndex 可选,开始查找的位置
const beats=['ant','bison','duck']
console.log(beats.indexof('bison'))
1
arr.isArray()
isArray()用于确定传递的值是否是一个Array
语法
arr.isArray(obj)
obj需要检测的值
arr.isArray([1,2,3])
true
arr.isArray({f00:123})
false
....
arr.join()
join()方法将一个数组(或一个类数组对象)的所有元素连接成一个字符串并返回这个字符串,如果数组只有一个项目,那么将返回该项目而不使用分隔符
语法
arr.join([separator])
separator可选,指定一个字符串来分隔数组的每个数组
返回值:一个所有数组元素连接的字符串,如果arr.length 为0,则返回空字符串
const arr=['ass','sdw','wda']
console.log(arr.join())
//ass,sdw,wda
console.log(arr.join(''))
asssdwwda
console.log(arr.join('-'))
ass-sdw-wda
arr.map()
map()方法创建一个新数组,其结果是该数组中得每个元素是调用一次提供的函数后的返回值。
语法
var array=arr.map(function())
返回值:一个由元素组每个元素执行回调函数的结果组成的新数组
var arr=[1,2,3]
var roots=arr.map(math.sqrt)
console.log(roots)
[1,4,9]
arr.pop()
pop()方法从数组中删除最后一个元素,并返回该元素的值,此方法更改数组的长度。
语法
arr.pop()
返回值:
从数组中删除的元素(数组为空是返回undefind)
const arr=[1,2,3,4]
console.log(arr.pop())
4
console.log(arr.pop(arr))
[1,2,3]
arr.pop()
console.log(arr)
[1,2]
arr.push()
push()方法将一个或多个元素添加到数组的末尾,并返回该数组的新长度。
语法
arr.push(element,...,elelments)
返回值:当调用该方法时,新的length属性将被返回。
添加元素到数组
var arr=[1,2,3]
var arr1=arr.push(4,5)
console.log(arr)
[1,2,3,4,5]
console.log(arr1)
5
合并两个数组
var arr1=[1,2]
var arr2=[3,4]
Array.prototype.push.apply(arr1,arr2)
console.log(arr1)
[1,2,3,4]
arr.reduce()
reduce()方法对数组中的每个元素执行一个由用户提供的reduce函数(升序执行),将其结果汇总为单个返回值。
语法
arr.reduce(callback(acc,cur,index))
acc 累计器回调的返回值,它是上一次调用回调时返回的累积值
cur 数组中正在处理的元素
index可选,数组中正在处理的当前元素的索引
const arr=[1,2,3,4]
const reducer=(acc,acc2)=>acc+acc2
console.log(arr.reduce(reducer))
10
console.log(arr.reduce(reducer,5))
15
arr.shift()
shift()方法从数组删除第一个元素,并返回该元素的值,此方法更改数组的长度。
语法:
arr.shift()
返回值:从数组中删除的元素,如果数组为空则返回undefined。
const arr=[1,2,3]
const first=arr.shift()
consolelog(arr)
[2,3]
cosole.log(first)
1
arr.some()
some()方法测试数组中是不是至少有一个元素通过了被提供的函数测试,它返回的是一个布尔类型值
语法
arr.some(callback(element,index,array))
callback用来测试每个元素的函数,接受三个参数
element数组中正在处理的元素
index可选,数组中正在处理元素的索引值
array可选,some()被调用的数组
const arr=[1,2,3,4,5]
const even=(element)=>element%2===0
console.log(arr.some(even))
true
arr.slice()
slice()方法返回一个新的数组对象,这一对象是由一个begin和end决定的原数组的浅拷贝,原始数组不会被改变。
语法
arr.alice(begin,end)
begin可选
end 可选
返回值:一个含有被提取元素的新数组
const arr=[1,2,3,4,5,6,7]
console.log(arr.slice(2))
[3,4,5,6,7]
console.log(arr.slice(1,5))
[2,3,4,5,6]
console.log(arr.alice(2,7))
[3,4,5,6,7]
console.log(arr.slice(-2))
[6,7]
arr.unshift()
unshift()方法将一个或多个元素添加到数组的开头,并返回该数组的新长度。
语法
arr.unshift(element,....elements)
返回值:当一个对象调用该方法时,返回其length属性值
const arr=[1,2,3]
console.log(arr.unshift(4,5))
5
console.log(arr)
[4,5,1,2,3]
arr.splice()
splice()方法通过删除或替换现有元素或者原地添加新的元素来修改数组,并以数组的形式返回被修改的内容,此方法会改变原数组
语法
arr.aplice(start,delete,item1...)
start:值得修改的开始位置
delete:可选,表示要移除的数组元素的个数
item…:可选,要添加进数组的元素,从start位置开始
返回值
由被删除的元素组成一个数组,如果只删除了一个元素,则返回只包含一个元素的数组,如果没有删除元素,则返回空数组。
const arr=[1,2,3,4,5]
months.aplice(1,0,8);
console.log(months)
[1,8,2,3,4,5]
months.splices(5,1,9)
console.log(months)
[1,8,2,3,4,,9]