数组Array常用方法:
- 静态方法:通过Array直接调用的方法。
-
- 实例方法:通过创建实例调用的方法。
- concat(array2[,array3,...,arrayX]):连接两个或更多的数组,并返回结果。
- copyWithin(target.start,end):从数组的指定位置拷贝元素到数组的另一个指定位置中。
- entries():返回数组的可迭代对象。
- every(function(currentValue,index,arr), thisValue):检测数值元素的每个元素是否都符合条件。
- fill(value, start, end):使用一个固定值来填充数组。
- filter(function(currentValue,index,arr), thisValue):检测数值元素,并返回符合条件所有元素的数组。
- find(function(currentValue, index, arr),thisValue):返回符合传入条件的第一个数组元素。
- findIndex(function(currentValue, index, arr), thisValue):返回符合传入条件的第一个数组元素索引。
- forEach(function(currentValue, index, arr), thisValue):数组每个元素都执行一次回调函数。
- includes(searchElement,fromIndex ):判断一个数组是否包含一个指定的值。
- indexOf(item,start):搜索数组中的元素,并返回它所在的位置。
- lastIndexOf(item,start):搜索数组中的元素,并返回它最后出现的位置。
- join(arg):把数组的所有元素放入一个字符串中。
- keys():返回数组的可迭代对象,包含原始数组的键(key)。
- map(function(currentValue, index, arr), thisValue):通过指定函数处理数组的每个元素,并返回处理后的数组。
- pop():删除数组的最后一个元素并返回删除的元素。
- push(arg1,...,argN):向数组的末尾添加一个或更多元素,并返回新的长度。
- reduce(function(previousValue, currentValue, currentIndex, array),initialValue):将数组元素计算为一个值(从左到右)。
- reduceRight():将数组元素计算为一个值(从右到左)。
- reverse():反转数组的元素顺序。
- shift():删除并返回数组的第一个元素。
- unshift(arg1,...,argN):向数组的开头添加一个或更多元素,并返回新的长度。
- slice(begin,end):选取数组的一部分,并返回一个新数组。
- some(function(currentValue, index, arr), thisValue):判断数组元素中是否有元素符合指定条件。
- sort(function compare(firstEl,secondEl){...}):对数组的元素进行排序。
- splice(start,deleteCount,item1,...,itemN):从数组中添加或删除元素。
- toString():把数组转换为字符串,并返回结果。
静态方法:通过Array直接调用的方法。
-
from(object, mapFunction, thisValue):通过给定的对象中创建一个数组。
var parameter = "object"
var arr = Array.from(parameter)
var arr = Array.from(parameter,x=>x+"1")
Array.isArray("obj")
Array.isArray(["Banana", "Orange", "Apple", "Mango"])
实例方法:通过创建实例调用的方法。
-
concat(array2[,array3,…,arrayX]):连接两个或更多的数组,并返回结果。
var arr1 = ["hello","world"]
var arr2 = ["!!!"]
var newArr1 = arr1.concat(1,2,3)
var newArr2 = arr1.concat([1,2,3])
var newArr3 = arr1.concat(arr2)
-
copyWithin(target.start,end):从数组的指定位置拷贝元素到数组的另一个指定位置中。
var arr = ["1","2","3","4","5","6"]
arr.copyWithin(2)
arr.copyWithin(2,1)
# 通常配合 for of 使用
var fruits = ["Banana", "Orange", "Apple", "Mango"];
for(let [k,v] of fruits.entries()) {
console.log(k,v)
}
-
every(function(currentValue,index,arr), thisValue):检测数值元素的每个元素是否都符合条件。
# 返回值是boolean值
var arr = [12,34,54,23]
var res = arr.every((item)=>item >= 12)
var res = arr.every((item)=>item == 12)
-
fill(value, start, end):使用一个固定值来填充数组。
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.fill(0)
fruits.fill(0,2,3)
-
filter(function(currentValue,index,arr), thisValue):检测数值元素,并返回符合条件所有元素的数组。
# 注意:返回值是新数组,不会修改原数组。
var arr = [32,34,5,53,14]
var res = arr.filter((item)=>item>10)
var res = arr.filter((item)=>item>100)
-
find(function(currentValue, index, arr),thisValue):返回符合传入条件的第一个数组元素。
# 不会修改原数组。
# 注意:没有符合条件的元素时返回undefined
var arr = [2,4,5,17,34]
var res = arr.find((item)=>item>10)
var res = arr.find((item)=>item>100)
-
findIndex(function(currentValue, index, arr), thisValue):返回符合传入条件的第一个数组元素索引。
# 不会修改原数组。
var arr = [10,43,55,23,1]
arr.findIndex(item=>item<10)
arr.findIndex(item=>item>100)
-
forEach(function(currentValue, index, arr), thisValue):数组每个元素都执行一次回调函数。
var arr = [3,24,12,55,34]
arr.forEach(item=>{
console.log(item);
})
-
includes(searchElement,fromIndex ):判断一个数组是否包含一个指定的值。
[1, 2, 3].includes(2);
[1, 2, 3].includes(3, 3);
[1, 2, 3, 3].includes(3, 3);
[1, 2, 3].includes(3, -1);
[1, 2, NaN].includes(NaN);
-
indexOf(item,start):搜索数组中的元素,并返回它所在的位置。
var arr = [2,13,23,1,54]
arr.indexOf(23)
arr.indexOf(23,3)
-
lastIndexOf(item,start):搜索数组中的元素,并返回它最后出现的位置。
var fruits=["Banana","Orange","Apple","Mango","Banana","Orange","Apple"];
fruits.lastIndexOf("Apple");
var fruits=["Banana","Orange","Mango","Banana","Orange","Apple","Apple"];
fruits.lastIndexOf("Apple",4);
-
join(arg):把数组的所有元素放入一个字符串中。
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.join();
fruits.join(123);
-
keys():返回数组的可迭代对象,包含原始数组的键(key)。
var fruits=["Banana", "Orange", "Apple", "Mango"];
for(let key of fruits.keys()){
console.log(key);
}
-
map(function(currentValue, index, arr), thisValue):通过指定函数处理数组的每个元素,并返回处理后的数组。
# 返回一个新数组,不影响原数组。
var arr = [2,4,5,6]
var newArr = arr.map( item => item * 2)
-
pop():删除数组的最后一个元素并返回删除的元素。
# 此方法修改影响原数组。
var fruits = ["apple","banana","mongo"]
fruits.pop()
console.log(fruits)
-
push(arg1,…,argN):向数组的末尾添加一个或更多元素,并返回新的长度。
# 此方法修改影响原数组。
var fruits = ["apple","banana","mongo"]
fruits.push()
fruits.push("orange")
-
reduce(function(previousValue, currentValue, currentIndex, array),initialValue):将数组元素计算为一个值(从左到右)。
-
-
reduceRight():将数组元素计算为一个值(从右到左)。
var arr = [1,2,3,4]
var result = arr.reduce((previousValue, currentValue)=>{
return (previousValue + currentValue)
})
var result = arr.reduce((previousValue, currentValue)=>{
return (previousValue + currentValue)
},5)
# 此方法修改影响原数组。
var arr = [1,2,3,4]
arr.reverse()
# 此方法修改影响原数组。
var arr = [1,2,3,4]
arr.shift()
console.log(arr)
-
unshift(arg1,…,argN):向数组的开头添加一个或更多元素,并返回新的长度。
# 此方法修改影响原数组。
var arr = [1,2,3,4]
arr.unshift(5)
arr.unshift(1,2)
console.log(arr)
-
slice(begin,end):选取数组的一部分,并返回一个新数组。
var animals = ['ant', 'bison', 'camel', 'duck', 'elephant']
animals.slice()
animals.slice(2)
animals.slice(2, 4)
animals.slice(-2)
animals.slice(2, -1)
-
some(function(currentValue, index, arr), thisValue):判断数组元素中是否有元素符合指定条件。
var arr = [10,2,5,23,12]
arr.some(item=>item>10)
arr.some(item=>item>100)
-
sort(function compare(firstEl,secondEl){…}):对数组的元素进行排序。
# 此方法会改变原数组。
var arr = [1, 30, 4, 21, 100000]
arr.sort()
arr.sort((a,b)=>{return a - b})
-
splice(start,deleteCount,item1,…,itemN):从数组中添加或删除元素。
# 此方法会改变原数组。
var arr = [1,3,4,5]
arr.splice(3,0,2)
console.log(arr)
-
toString():把数组转换为字符串,并返回结果。
# 此方法不影响原数组。
# 与 join() 方法区别:join可以添加参数,无参数时,与toString一致。
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.toString()