JS 数组函数汇总

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()

把数组转换为字符串,并返回结果。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值