JavaScript中常见的数组操作函数及用法

  昨天写了个帖子,汇总了下常见的JavaScript中的字符串操作函数及用法。今天正好有时间,也去把JavaScript中常见的数组操作函数及用法总结一下,这样方便大家准备参考。如果恰好你也在准备各种笔试,希望对你有所帮助。同时,也欢迎补充。

  1、数组创建


  创建数组应该是最简单的了,有用数组字面量创建和数组构造函数两种方法,见下:

var array1 = new Array();
var array2 = [];

  上面是创建数组的最常见的两种方法,其中第二种方法因为简单直观而被开发者推崇。其中,使用构造函数创建数组同样可以接收用于存放于数组的值,如:

var array3 = new Array("num1","num2","num3");//["num1", "num2", "num3"]

  同样,如果你传给构造函数的值是一个number,则该number如果大于0,则将是这个新创建数组的长度,如:

var array4 = new Array(5);
array4.length;//5

  同样的效果下,我们还是推荐使用字面量的形式创建数组。

  2、数组检测


  有两种可以检测数组的方式,第一种使用instanceof,如下:

var array5 = [];
array5 instanceof Array;//true

  同时,Array也自带了isArray()的方法,如下:

var array6 = [];
Array.isArray(array6 );//true

  3、获取数组长度


  数组长度可以通过.length获取,如下:

var array7 = [1,2,3,4];
array7.length;//4

  同时,数组的长度你也可以随时设置,如果设置的长度超过之前的,则后面的内容会自动补充维undefined,否则会截取有效长度的内容,如下:

var array8 = [1,2,3,4,5];
console.log(array8.length);//5
array8.length = 8;
array8;//[1, 2, 3, 4, 5, undefined × 3] array8.length = 3;
array8;//[1,2,3]

  4、获取或者设置数组值


  我们可以获取和设置数组的值,这里需要记住的是数组的下标是从0开始的,如下:

var array9 = [1,2,3,4,5,6];
array9[2];//3
array9[2] = 4;
array9[2];//4

  5、数组字符串转换


  数组转换为字符串可以调用数组自带的toString()方法,返回数组的字符串形式,如下:

var array10 = [1,2,3,4];
array10.toString();//"1,2,3,4"

  另外,数组也有另外一个非常有用的函数join(),它接受一个字符串参数,用于插在数组各项之间形成字符串,如下:

var array11 = [1,2,3,4];
array11.join("||");//"1||2||3||4"

  6、数组添加和删除项


  前面讲过,我们可以设置length自动给数组添加一些undefined的值。同时,我们也可以通过访问一个超过数组本来的长度的数字下标以给数组添加项,如:

var array12 = [1,2,3,4];
array12[5] = 5;
array12[6] = 6;
array12;//[1, 2, 3, 4, undefined × 1, 5, 6]

  另外,我们也可以通过push()给数组添加新的元素,如下:

var array13 = [1,2,3,4];
array13.push(5,6);
array13;//[1, 2, 3, 4, 5, 6]

  与push()相对的是有一个pop()方法,用以删除数组中的项,且从数组最后一项开始,例如:

var array14 = [1,2,3,4];
array14.pop();//4
array14.pop();//3;
array14;//[1, 2]

  同时,我们可以通过delete删除数组某项,但是只会删除该值,恢复默认的undefined,如下:

var array15 = [1,2,3,4,5];
delete array15[1];
array15;//[1, undefined × 1, 3, 4, 5]

  另外两个非常有用的方法shift()和unshift(),跟push()和pop()方法类似,其中,shift()方法用以从数组起始位置开始删除元素且返回被删除的元素,如下:

var array16 = [1,2,4,5,6];
array16.shift();//1
array16;[2,4,5,6]

  而unshift()与shift()相反,用于向数组起始位置添加元素,并且数组的原来元素分别后移,如下:

var array17 = [1,2,3,4];
array17.unshift(2);//返回数组长度5,下同
array17.unshift(3);
array17.unshift(4);
array17;//[4, 3, 2, 1, 2, 3, 4]

  7、数组翻转和排序


  我们可以对一个数组进行翻转,也可以让一个数组进行排序,如下:

var array18 = [21,14,54,35,23,44,103];
array18.reverse();//[103, 44, 23, 35, 54, 14, 21]
array18.sort();//[103, 14, 21, 23, 35, 44, 54]

  注意,数组默认排序并不是大小,而是按照对应字符串逐个编码排序的。你可以通过给sort()传递一个比较函数,类改变规则,如下:

var array18 = [21,14,54,35,23,44,103];
array18.reverse();//[103, 44, 23, 35, 54, 14, 21]
array18.sort(function(a,b){return a - b;});//[14, 21, 23, 35, 44, 54, 103]

  8、数组连接


  我们可以把不同的数组连接到一起,如下:

var array19 = [1,2,3];
var array20 = [4,5];
var array21 = array19.concat(array20);//[1, 2, 3, 4, 5]

  注意原数组都没有也不会发生改变。

  9、数组分割


  我们同样可以通过slice()把数组进行分割,它接受一个参数的话表示分割的起始位置,接受第二个可选的参数是表示结束的位置,如下:

var array22 = [1,2,3,4,5,6];
var array23 = array22.slice(4);//5,6
var array24 = array22.slice(2,4);//3,4

  注意,分割的数组包含slice()的起始位置而不包含结束位置。

  10、最强大的splice()


  现在,该讲讲最强大的splice()函数了,它接受三个参数,可实现添加、删除、修改等不同的功能。看下w3school上它的语法,如下:

  ①添加元素

var array25 = [1,2,3,4,5,6];
array25.splice(2,0,88,77);//[] 返回被删除的元素,这里没有删除,返回为空
array25;//[1, 2, 88, 77, 3, 4, 5, 6]

  ②修改元素

var array26 = [1,2,3,4,5,6,7];
array26.splice(2,2,33,44);//[3,4]
array26;//[1, 2, 33, 44, 5, 6, 7]

  ③删除元素

var array27 = [1,2,3,4,5,6,7];
array27.splice(2,2);//[3, 4]
array27;//[1, 2, 5, 6, 7]

  结束语


  匆匆总结了下,不知道有没有漏下什么关键的函数或者方法,希望大家可以给予补充!

JavaScript中常见的数组操作函数及用法的更多相关文章

  1. JavaScript中常见的字符串操作函数及用法

    JavaScript中常见的字符串操作函数及用法 最近几次参加前端实习生招聘的笔试,发现很多笔试题都会考到字符串的处理,比方说去哪儿网笔试题.淘宝的笔试题等.如果你经常参加笔试或者也是一个过来人,相信 ...

  2. 深圳尚学堂:JavaScript中常见的字符串操作

    快到春节放假了,春节后又是一大波的找工作热潮,在前端实招聘笔试时,必不可免额会考到关于JavaScript中字符串的处理问题.考的不是你会不会,而是你能不能在不借用XX手册或者XX指南再或者百度谷歌的 ...

  3. javaScript中关于字符串的操作函数和方法

    1.字符串转换 toString():可以将任何类型的数据都转换为字符串 var num= 19; //19 var myStr = num.toString(); //"19" ...

  4. JavaScript 数组操作函数--转载+格式整理

    JavaScript 数组操作函数(部分)--转载+格式整理 今天看了一篇文章,主要讲的对常用的Js操作函数:push,pop,join,shift,unshift,slice,splice,conc ...

  5. SAS中常见的数组函数

    SAS中常见的数组函数有: dim dimk hbound hboundk lbound lboundk 数组函数计萁数组的维数.上下界,有利于写出可移植的程序,数组函数包括:dim(x) 求数组x第 ...

  6. JavaScript:JavaScript中常见获取对象元素的方法

    介绍: javascript中常见的3种获取元素的方法,分别是通过元素ID.通过标签名字和通过类名字来获取 操作如下: 1.getElementById DOM提供了一个名为getElementByI ...

  7. 【转】《深入理解计算机系统》C程序中常见的内存操作有关的典型编程错误

    原文地址:http://blog.csdn.net/slvher/article/details/9150597 对C/C++程序员来说,内存管理是个不小的挑战,绝对值得慎之又慎,否则让由上万行代码构 ...

  8. 《深入理解计算机系统》C程序中常见的内存操作有关的典型编程错误

    对C/C++程序员来说,内存管理是个不小的挑战,绝对值得慎之又慎,否则让由上万行代码构成的模块跑起来后才出现内存崩溃,是很让人痛苦的.因为崩溃的位置在时间和空间上,通常是在距真正的错误源一段距离之后才 ...

  9. javascript中对字符串的操作总结

    原文:javascript中对字符串的操作总结 没听过一句话吗?程序员的世界,不处理字符串就是处理数组.这是群里的一位前辈和我说的,显然这和我之前理解的DOM是javascript的核心的不同的,看了 ...

随机推荐

  1. HTML 样式属性

    @charset "utf-8"; /* CSS Document */ <style> p{ /*背景与前景*/ background-color:#000;/*背景 ...

  2. C#方法参数传递机制

    1:value(值传递).ref(引用传递).out(输出传递) ref和out使用效果上面是等效的,它们的区别在于:参数标记为ref,那么必须在调用函数之前初始化参数的值:参数标记为out,调用函数 ...

  3. flex(兼容写法)

    CSS样式 flex:定义布局为盒模型 flex-v:盒模型垂直布局 flex-1:子元素占据剩余的空间 flex-align-center:子元素垂直居中 flex-pack-center:子元素水 ...

  4. C++复数类对除法运算符 / 的重载

    C8-1 复数加减乘除 (100.0/100.0 points) 题目描述 求两个复数的加减乘除. 输入描述 第一行两个double类型数,表示第一个复数的实部虚部 第二行两个double类型数,表示 ...

  5. 关于peersim样例配置文件的超详细解读(新手勿喷)

    相信很多兄弟一开始接触peersim,对配置文件还是有点不适应,我看了好久的样例的配置文件,一层层去找对应的文件的方法,终于好像悟懂了一点,记下来以后回顾. 贴上代码,一点点分析. 首先要说下所谓的配 ...

  6. clip 属性剪裁绝对定位元素

    如果left >= right或者bottom <= top,则元素会被完全裁掉而不可见,即“隐藏”.通过这种方式隐藏的元素是可以被屏幕阅读器等辅助设备识别的,从而提高了页面的可用性. I ...

  7. SAPCAR 压缩解压软件的使用方法

    SAPCAR 是 SAP 公司使用的压缩解压软件,从 SAP 网站下载的补丁包和小型软件基本都是扩展名为 car 或 sar 的,它们都可以用 SAPCAR 来解压.下面是它的使用说明: 用法: 创建 ...

  8. Deactivate .NET refector

    8.5版本用注册机注册时手快成Standed版本,搞错......,能否Deactivated,发现要联网..... 接下来查找.net reflector 在位置%UserProfile%\AppD ...

  9. 【并查集】【树】最近公共祖先LCA-Tarjan算法

    最近公共祖先LCA 双链BT 如果每个结点都有一个指针指向它的父结点,于是我们可以从任何一个结点出发,得到一个到达树根结点的单向链表.因此这个问题转换为两个单向链表的第一个公共结点(先分别遍历两个链表 ...

  10. 转 git安装配置

    Win7上Git安装及配置过程 一.安装说明 1.Git在windows平台上安装说明. Git 是 Linux Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件 ...