17个常用 JS 数组方法

    技术2025-10-19  21

    数组是什么?

    一个有序的集合本质上也是变量的一种,可以存储一连串的变量/值数组集合的长度可以动态的调整,理论上是无限大的数组中可以存储任意类型的数据

    添加/删除

    push(…args):在数组的末尾添加一个或多个元素(改变原数组)

    返回值:添加元素后的数组长度

    var names = ["孙悟空","猪八戒","沙悟净"]; var len = names.**push("lhm")**; console.log(names,len);

    运行结果:

    pop():删除数组的最后一个元素(改变原数组)

    返回值:被删除的元素

    var names = ["孙悟空","猪八戒","沙悟净"]; var ele = names.pop(); console.log(names,ele);

    运行结果:

    shift():删除数组的第一个元素(改变原数组)

    返回值:被删除的元素

    var names = ["孙悟空","猪八戒","沙悟净"]; var ele2 = names.shift(); console.log(names,ele2);

    运行结果:

    unshift():在数组的开头添加一个或多个元素(改变原数组)

    返回值:被删除的元素

    var names = ["孙悟空","猪八戒","沙悟净"]; var len2 = names.unshift("unshift1","unshift2"); console.log(names,len2);

    运行结果:

    排序/反转

    sort():用“原地算法”对数组的元素进行排序(改变原数组)

    返回值:排序后的数组

    var arr = ["a","bc","abc","db"]; var nums = [2,34,12,43,4,8]; console.log(arr.sort()); console.log(nums.sort()); nums.sort(function(a,b){ //对数组中的数字进行升序排列 return a-b; }); console.log(nums);

    运行结果:

    reverse():对数组进行反转操作(改变原数组)

    返回值:反转后的数组

    var nums = [2,34,12,43,4,8]; nums.reverse(); console.log(nums);

    运行结果:

    拼接

    join(char):以指定字符作为拼接符将数组拼接为字符串

    返回值:返回值:拼接后的字符串

    var arr = ["a","bc","abc","db"]; var str = arr.join("+"); console.log(arr); console.log(str);

    运行结果:

    concat(arrList):将多个数组拼接,合并为一个新的数组

    返回值:返回值:合并后的新数组

    var arr = ["a","bc","abc","db"]; var arr2 = [1,21,34,66]; var arr3 = ["张","李","王"]; var newArr = arr2.concat(arr,arr3); console.log(newArr);

    运行结果:

    选取/截取

    slice(start,end):在数组中从指定的开始位置到指定的结束位置(包括 start,不包括 end),复制为新的数组

    返回值:新数组

    var names = ["孙悟空","猪八戒","沙悟净","白龙马","唐僧"]; var newArry = names.slice(2,4); console.log(newArry);

    运行结果:

    splice(index,howmany,ele,ele…):任意位置删除/添加/替换元素(改变原数组)

    返回值:被删除的元素组成的数组

    var names = ["孙悟空","猪八戒","沙悟净","白龙马","唐僧"]; var dele = names.splice(1,2); console.log(names); console.log(dele); names.splice(0,2,"李","会"); console.log(names);

    运行结果:

    查找

    index(element, fromIndex):从数组的指定位置开始,查找给定元素。参数2可省略不写(默认为0)

    返回值:给定元素的第一个索引,找不到则返回-1

    var numbers = [3,2,9,6,9]; var i = numbers.indexOf(0); console.log(i); console.log(numbers.indexOf(9)); var j = numbers.indexOf(9,3); console.log(j);

    运行结果:

    includes(value, fromIndex):判断一个数组是否包含一个指定的值.第二个参数可省略(默认为0)

    返回值:Boolean类型 是:true 否:false

    var numbers = [3,2,9,6,8]; console.log(numbers.includes(5)); console.log(numbers.includes(9)); console.log(numbers.includes(9,3));

    运行结果:

    ES5

    forEach( function(element,index,array){ } ):遍历数组,对数组中的每个元素执行一次给定的回调函数

    返回值:undefined

    var names = ["孙悟空","猪八戒","沙悟净"]; names.forEach(function(ele,index,array){ console.log(ele,index,array); })

    运行结果:

    map( function(element,index,array){ } ):遍历数组,对数组中的每个元素执行一次给定的回调函数

    返回值:存放执行结果的新数组

    var numbers = [3,2,6,9]; var newNum = numbers.map(function(e){ return e*2; }); console.log(newNum);

    运行结果:

    filter(function(element,index,array){ }):过滤,遍历数组并将数组中满足条件的元素过滤到一个新的数组中

    返回值:满足过滤条件的元素组成的新数组

    var arr = ["孙悟空","猪八戒",1,5,"沙悟净","白龙马",65,"唐僧"]; var newArry = arr.filter(function(e,i,arr){ return typeof(e) === "number"; }); console.log(newArry);

    运行结果:

    some(function(element,index,array){ }):判断数组中是否有满足条件的元素

    返回值:Boolean类型,有返回 true, 没有返回 false

    var arr = ["孙悟空","猪八戒",1,5,"沙悟净","白龙马",65,"唐僧"]; var flag = arr.some(function(e,i,arr){ return typeof(e) === "boolean"; }); console.log(flag);

    运行结果:

    every(function(element,index,array){ }):判断数组中是否每个元素都满足条件

    返回值:Boolean类型,都满足返回 true, 否则返回 false

    var names = ["孙悟空","猪八戒","沙悟净"]; var flag1 = names.every(function(e,i,arr){ return typeof(e) === "string"; }); console.log(flag1);

    运行结果: 利用周末时间把这些常用的数组方法整理出来跟大家分享 希望对你有所帮助 如果发现有错误的地方,还请多多指教!

    Processed: 0.014, SQL: 9