详解JavaScript数组的常用方法

 更新时间:2021年11月17日 11:01:49   作者:1900''s 88 keys  
这篇文章主要为大家介绍了JavaScript数组的常用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助

数组的常用方法

  • push() 改方法可以向数组末尾添加一个或多个元素,并返回数组的新长度
  • 可以将添加的元素作为方法的参数传递,这些元素会自动添加加到数组的末尾
  • 改方法会将数组新的长度作为返回值返回
var arr = ["小和尚","小猴","小猪","小沙","小龙"];
var result = arr.push("江流","心猿","木龙","刀圭","意马");
console.log("返回值:"+result);
console.log("新数组:"+arr);

在这里插入图片描述

pop()

该方法可以删除数组最后一个元素,并将被删除的元素作为返回值

var arr = ["江流","心猿","木龙","刀圭","意马"];
var result = arr.pop();
console.log("返回值:"+result);
console.log("新数组:"+arr);

在这里插入图片描述

unshift()

  • 想数组开头添加一个或多个元素,并返回新的数组长度
  • 向前边插入元素以后,其他的元素索引会依次调整
var arr = ["江流","心猿","木龙","刀圭","意马"];
var result = arr.unshift();
console.log("返回值:"+result);
console.log("新数组:"+arr);

在这里插入图片描述

shift()

可以删除数组第一个元素,并将被删除的元素作为返回值

var arr = ["江流","心猿","木龙","刀圭","意马"];
var result = arr.shift();
console.log("返回值:"+result);
console.log("新数组:"+arr);

在这里插入图片描述

slice()

  • 可以用来从数组提取指定元素
  • 该方法不会改变元素数组,而是将截取到的元素封装到一个新的数组中返回

参数:

  • 第一个参数:截取开始位置的索引,包含开始索引
  • 第二个参数:截取结束位置的索引,不包含结束索引(截取到数组不包括该值)
  • 第二个参数可以省略不写,此时会截取从开始索引往后的所有元素
    • 索引可以传递一个负值,如果传递一个负值,则从后往前计算
    • 1倒数第一个
    • 2倒数第二个
var arr = ["江流","心猿","木龙","刀圭","意马"];
var result = arr.slice(1,3);
console.log("截取到的数组:"+result);
console.log("原数组不会发生改变:"+arr);

在这里插入图片描述

splice()

  • 可以用来删除数组中的指定元素
  • 使用该方法会影响到原数组,会将指定元素从原数组中删除,并将被删除的元素作为返回值

参数

  • 第一个参数:表示开始位置的索引,包含开始索引
  • 第二个参数:表示删除的个数,不包含结束索引(截取到数组不包括该值)
var arr = ["江流","心猿","木龙","刀圭","意马"];
var result = arr.splice(1,3);
console.log("删除到的元素:"+result);
console.log("原数组会发生改变:"+arr);

在这里插入图片描述

  • 第三个参数及以后:可以传递一些新的元素,这些元素将hi自动插入到开始位置索引前边
var arr = ["江流","心猿","木龙","刀圭","意马"];
var result = arr.splice(1,2,"孙悟空","猪八戒");
console.log("删除的元素:"+result);
console.log("原数组会发生改变:"+arr);

在这里插入图片描述

数组元素去重

var arr = [1, 1, 5, 6, 4, 5, 2, 3, 7, 9, 4, 4, 4, 1];
for (let i = 0; i < arr.length; i++) {
    for (let j = i + 1; j < arr.length; j++) {
        if (arr[i] === arr[j]) {
            arr.splice(j, 1);//删除当前j所在位置的元素
            j--;//删除j所在元素后,后边元素会自动补位,需要重新在j这位置重新比较一次
        }
    }
}
console.log(arr);

concat()

  • 该方法可以连接两个或多个数组,并将新的数组返回
  • 该方法不会对原数组产生影响
var arr1 = ["江流","心猿","木龙","刀圭","意马"];
var arr2 = ["唐僧","孙悟空","猪八戒","沙僧","白龙马"];

var result = arr1.concat(arr2,"心猿意马");
console.log("新数组:"+result);

在这里插入图片描述

join()

  • 该方法可以将数组转换为一个字符串
  • 该方法不会对原数组产生影响,而是将转换后的字符串作为结果返回
  • join()中可以指定一个字符串作为参数,这个字符串将会成为数组中元素的连接词,如果不指定连接词符,则默认使用,作为连接符
var arr = ["江流","心猿","木龙","刀圭","意马"];

var result = arr.join("-");
console.log("新数组:"+result);
console.log("result的类型为:"+typeof(result));

在这里插入图片描述

reverse()

  • 该方法用来反转数组(前面的元素到后边去,后边的到前边去)
  • 该方法会影响到原数组
var arr = ["江流","心猿","木龙","刀圭","意马"];

arr.reverse();
console.log("颠倒后的arr数组:"+arr);

在这里插入图片描述

sort()

该方法可以对数组中的元素进行排序该方法会影响原数组,则默认会按照Unicode编码进行排序

var arr = ["a","d","g","f","k",'v',"d","x"];
arr.sort();
console.log("排序后的arr数组:"+arr);

在这里插入图片描述

即使对于纯数字的数组,使用sort()排序时,也会按照Unicode编码进行排序,所以对于数字进行排序,可能会得到错误答案

var arr = [2,14,12,3,5,53,7,31,13];
arr.sort();
console.log("排序后的arr数组:"+arr);

在这里插入图片描述

可以自己指定排序的规则

在sort()添加一个回调函数,来指定排序规则

回调函数中需要定义两个形参 (a, b)

浏览器会分别使用数组中的元素作为实参去调用回调函数

浏览器会根据回调函数的返回值来决定元素的顺序

  • 如果返回一个大于0的值,则元素会交换位置
  • 如果返回一个小于0的值,则元素位置不变
  • 如果返回一个0,则认为两个元素相等,也不交换位置
  • 如果需要升序排序,则返回a - b
  • 如果需要降序排序,则返回b - a
var arr = [2, 14, 12, 3, 5, 53, 7, 31, 13];
arr.sort(function (a, b) {
   return a - b;//升序
   //return b - a;降序 
});
console.log("排序后的arr数组:" + arr);

在这里插入图片描述

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注脚本之家的更多内容!

相关文章

  • 微信小程序里引入SVG矢量图标的方法

    微信小程序里引入SVG矢量图标的方法

    这篇文章主要介绍了微信小程序里引入SVG矢量图标的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • JavaScript实现简单拖拽效果

    JavaScript实现简单拖拽效果

    这篇文章主要为大家详细介绍了JavaScript实现简单拖拽效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • 父页面iframe中的第三方子页面跨域交互技术—postMessage实现方法

    父页面iframe中的第三方子页面跨域交互技术—postMessage实现方法

    web网站通过iframe嵌入第三方web页面,父页面和子页面如果需要数据交互,显然违反了同源策略,在HTML5标准引入的window对象下的postMessage方法,可以允许来自不同源的JavaScript脚本采用异步方式进行有限的通信,可以实现跨文本档、多窗口、跨域消息传递...
    2023-06-06
  • 4个值得收藏的Javascript技巧

    4个值得收藏的Javascript技巧

    这篇文章主要介绍了4个值得收藏的Javascript技巧,文章首先通过变量转字符串展开主题详情,需要的小伙伴可以参考一下
    2022-07-07
  • JS实现复制功能

    JS实现复制功能

    本文主要介绍了JS实现复制功能的实例,具有很好的参考价值,下面跟着小编一起来看下吧
    2017-03-03
  • 利用chrome浏览器进行js调试并找出元素绑定的点击事件详解

    利用chrome浏览器进行js调试并找出元素绑定的点击事件详解

    “工欲善其事,必先利其器” 恩,这句话我觉得说的特别有道理,下面这篇文章主要给大家介绍了关于利用chrome浏览器进行js调试并找出元素绑定的点击事件的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2018-09-09
  • ES6中let、const的区别及变量的解构赋值操作方法实例分析

    ES6中let、const的区别及变量的解构赋值操作方法实例分析

    这篇文章主要介绍了ES6中let、const的区别及变量的解构赋值操作方法,结合实例形式分析了ES6中let、const的功能、原理、使用方法及数组、字符串、函数参数等解构赋值相关操作技巧,需要的朋友可以参考下
    2019-10-10
  • 封装一个公用Echarts图表组件的3种模板代码示例

    封装一个公用Echarts图表组件的3种模板代码示例

    这篇文章主要给大家介绍了关于封装一个公用Echarts图表组件的3种模板,定义图表公共样式是为了统一同一网站各页面图表的基础样式,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-02-02
  • 基于Proxy的小程序状态管理实现

    基于Proxy的小程序状态管理实现

    这篇文章主要介绍了基于Proxy的小程序状态管理实现,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-06-06
  • js动态添加onload、onresize、onscroll事件(另类方法)

    js动态添加onload、onresize、onscroll事件(另类方法)

    window 的 onload、onresize、onscroll 事件,跟其他的事件不一样,它不能用 attachEvent 或 addEventListener 来添加于是本人想了一些另类的方法,需要了解的朋友可以参考下
    2012-12-12

最新评论