concat()
连接两个或多个数组,返回一个新的数组。
var arr1=[1,2,3];
var arr2=["a","b","c"];
var arr3=arr1.concat(arr2);
alert(arr3); // 1,2,3,a,b,c
copyWithin()
从数组的指定位置拷贝元素到数组的另一个指定位置中。
复制第二和第三个元素到第五和第六个位置上:
var arr=["a","b","c","d","e","f","g"];
console.log(arr.copyWithin(4,1,3));
// a,b,c,d,b,c,g
4:必需,复制到指定目标索引位置
1:可选,从第二个元素开始复制
3:可选,停止复制的索引位置
every()和some()
every()
检测数组所有元素是否都符合指定条件,通过函数提供。检测到有一个不满足,返回false且停止检测。都满足则返回true。
例:检测数组的所有元素是否都大于等于18:
var arr=[30,15,20,25];
function check(a){
return a>=18;
}
function Fun(){
alert(arr.every(check));
} // false
some()
检测数组中的元素是否满足指定条件(函数提供)。如果有一个元素满足条件,则返回true,并停止检测。如果没有满足条件的元素,返回false。
例:检测数组中是否有元素大于25:
var arr=[30,15,20,25];
function check(a){
return a>=25;
}
function Fun(){
alert(arr.some(check));
} // true
fill()
使用固定的值来填充数组
var arr=["a","b","c","d"];
alert(arr.fill("e",2,4));
// a,b,e,e
e:必需,填充的值
2:可选,开始填充的位置
4:可选,停止填充的位置
filter()
检测指定的数组中所有符合条件的元素,并返回新的数组。
var arr=[30,15,20,25];
function check(a){
return a>=18;
}
function Fun(){
alert(arr.filter(check));
} // 30,20,25
find()
返回通过函数判断的数组的第一个元素的值。当数组的元素在测试条件返回true时,find()返回符合条件的元素,之后的值不会再调用函数,没有符合条件的元素则返回undefined。
var arr=[30,15,20,25];
function check(a){
return a>=20;
}
function Fun(){
alert(arr.find(check));
} // 20
findindex()
返回传入一个测试条件(函数)符合条件的数组第一个元素的位置。当数组的元素在测试条件返回true时,findindex()返回符合条件的元素的索引位置,之后的值不会再调用函数,没有符合条件的元素则返回-1。
var arr=[30,15,20,25];
function check(a){
return a>=20;
}
function Fun(){
alert(arr.findindex(check));
} // 2
forEach()
调用数组的每个元素,并将元素传递给回调函数。
数组的每个元素乘以10:
<input type="number" id="inp" value="10"></p>
<button onclick="array.forEach(Fun)">点我</button>
<p id="myp"></p>
var array=[20,30,40,50];
function Fun(item,index,arr){
arr[index]=item*document.getElementById("inp").value;
myp.innerHTML=array; // 200,300,400,500
}
from()
用于通过拥有length属性的对象或可迭代的对象来返回一个数组。
例:通过字符串创建一个数组:
var arr=Array.from("hello");
if(arr instanceof Array){
alert(arr[0]);
}else{
alert("该对象不是数组!");
} // h
例:返回集合中饮食的对象数组:
var obj=new Set(["a","b","c"]);
var arr=Array.from(obj);
obj[1]=="b"; // true
例:如何使用箭头语法和映射函数更改元素的值:
var arr=Array.from([1,2,3], x => x * 10);
// arr[0]==10;
// arr[1]==20;
// arr[2]==30;
includes()
判断一个数组是否包含一个指定的值,如果是返回true,否则返回false
[1,2,3],includes(2); //true
[1,2,3],includes(4); //false
[1,2,3],includes(3,3); //false
[1,2,3],includes(3,-1); //true
[1,2,NaN],includes(NaN); //true
indexOf()
返回数组中某个指定的元素位置。
该方法将从头到尾地检索数组,看它是否含有对应的元素。如果找到一个 item,则返回 item 的第一次出现的位置。开始位置的索引为 0。
如果在数组中没找到指定元素则返回 -1。
var arr=["a","b","c","a","b","c"];
alert(arr.indexOf("b",3));
// 4
isArray()
判断一个对象是否为数组。返回bool值。
语法:Array.isArray(obj)
join()
把数组中的所有元素转换为一个字符串,元素通过分隔符分隔。
若没有指定分隔符则用逗号来分隔元素。
keys()
返回数组的可迭代对象,包含原始数组的键(key)。
lastIndexOf()
返回一个指定的元素在数组中最后出现的位置,从后向前查找。若没有找到,则返回-1。
数组的检索位置从0开始。
var arr=["a","b","c","a","b","c"];
alert(arr.lastIndexOf("a",4)); // 3
讲解:a是要查找的元素,4指开始检索的位置并向前查找,找到第一个a后,从0开始数a的位置,结果为3。
map()
通过指定函数处理数组的每个元素,并返回处理后的数组。
例:返回一个新数组,数组中元素为原始数组的平方根:
var arr=[4,9,16,25];
function Fun(){
alert(arr.map(Math.sqrt));
} // 2,3,4,5
pop()和shift()
pop()删除并返回数组的最后一个元素。
shift()删除并返回数组的第一个元素。
push()和unshitf()
push()向数组的末尾添加一个或多个元素,并返回新的数组。
unshitf()赂数组的开头添加一个或多个元素,并返回新的数组。
reduce()和reduceRight()
reduce()将数组的元素计算为一个值,从左到右。
reduceRight()将数组的元素计算为一个值,从右到左。
reverse()和sort()
reverse()反转数组的元素顺序。
sort()对数组的元素进行排序。排序顺序可以是字母或数字,并按升序或降序,默认按字母升序。
例:数字排序调用函数,升序:
var arr=[20,50,4,15,30];
arr.sort(function(a,b){return a-b}); //升序
// 4,15,20,30,50
例:数字排序调用函数,降序:
var arr=[20,50,4,15,30];
arr.sort(function(a,b){return b-a}); //降序
// 50,30,20,15,4
例:数字排序,字母降序:
var arr=["b","o","a","m"];
arr.sort(); //字母升序
arr.reverse(); //反转顺序
// o,m,b,a
slice()
选取数组的一部分,并返回新数组。
例:选取第二和第三个元素:
var arr=["b","o","a","m"];
arr.slice(1,3); // o,a
例:选取倒数第三和倒数第二个元素:
var arr=["b","o","a","m","c"];
arr.slice(-3,-1); //a,m
splice()
从数组中添加或删除元素。
例:删除第三个元素,并在第三个位置添加新元素:
var arr=["b","o","a","m"];
arr.aplice(2,1,"e","f");
// b,o,e,f,m
例:删除最后两个元素:
var arr=["b","o","a","m"];
arr.aplice(2,2); //b,o
toString()
把数组转换为字符串,并返回结果。