今天,我复习了一下JavaScript的数组相关的知识,总结一下数组的API:

  总共有11个API:按照学习的先后顺序来吧,分别是:

  ① toString() 

    语法:arr.toString();

    将数组转化为字符串,并且返回这个字符串,以逗号分隔;但是不改变原数组;    

 var arr=[1,2,3,4,5];
 var result=arr.toString();
 console.log(result); //1,2,3,4,5
 console.log(arr);    //[1,2,3,4,5]

toString()

  ②concat()

    语法:arr.concat(arr1,arr2,arr3...);

    用于连接2个或者多个数组,该方法不改变原数组,而仅仅返回被连接后的数组的副本。支持打散数据。

 var arr1=[1,2,3];
 var arr2=[4,5,6];
 var arr3=arr1.concat(arr2);
 console.log(arr1);   //[1, 2, 3]
 console.log(arr2);   //[4, 5, 6]
 console.log(arr3);   //[1, 2, 3, 4, 5, 6]

concat()

  ③join()

    语法:arr.join("");

    用于在数组中的每两个相邻元素之间插入指定的字符串进行分割。该方法不改变原数组。特殊情况:字符串为空的时候,以逗号代替。

 var arr4=[7,8,9];
 var result2=arr4.join();
 var result3=arr4.join("--");
 console.log(arr4);      //[7, 8, 9]
 console.log(result2);   //7,8,9
 console.log(result3);   //7--8--9

join()

  ④reverse()

    语法:arr.reverse();

    用于颠倒数组中的顺序。直接修改原数组

 var arr5=[1,2,3];
 var result5=arr5.reverse();
 console.log(arr5);      //[3, 2, 1]
 console.log(result5);   //[3, 2, 1]

reverse()

  ⑤sort()

    语法:arr.sort(callback);

    对数组元素进行排序。直接修改原数组。如果没有callback,那么按照字符编码进行升序排列。如果有callback就按照callback的规则进行排序    

 var arr6=[1,3,12,23,45,123,234];
 var result6=arr6.sort();
 console.log(arr6);          //[1, 12, 123, 23, 234, 3, 45]
 console.log(result6);       //[1, 12, 123, 23, 234, 3, 45]

 var arr7=[1,3,12,23,45,123,234];
 var result7=arr7.sort(function(a,b){return a-b})
 console.log(result7);   //[1, 3, 12, 23, 45, 123, 234]

sort()

  ⑥splice()

    语法:arr.splice(starti,n,elem1,elem2...)

    用于数组的插入、删除、替换,主要取决于你要删掉的元素个数和你插入元素个数的大小决定。若删掉0个,即为添加,删掉个数=插入个数即为替换,若添加个数为0,则为删除。 返回被删除的元素组成的临时新数组,修改原数组,要插入的值,只能以单独的参数传入,不支持打散数组参数。

 var arr8=[1,2,3,4,5,6,7];
 var result8=arr8.splice(2,0,8);  //插入
 console.log(arr8);    //[1, 2, 8, 3, 4, 5, 6, 7]
 console.log(result8); //[]
 var arr9=[1,2,3,4,5,6,7];
 var result9=arr9.splice(2,1,8);  //替换
 console.log(arr9);    //[1, 2, 8, 4, 5, 6, 7]
 console.log(result9); //[3]
 var arr10=[1,2,3,4,5,6,7];
 var result10=arr10.splice(2,1);  //删除
 console.log(arr10);    //[1, 2, 4, 5, 6, 7]
 console.log(result10); //[3]

splice

  ⑦slice()

    语法:arr.slice(starti,endi+1);

    用于截取数组中从starti到endi位置的数组,若省略endi,则表示从starti开始截取到结尾;若starti为负数,则表示倒着截取。不修改原数组

 var arr11=[1,2,3,4,5];
 var result11=arr11.slice(1,3);
 var result12=arr11.slice(1);
 var result13=arr11.slice(-1);
 console.log(arr11);         //[1, 2, 3, 4, 5]
 console.log(result11);      //[2, 3]
 console.log(result12);      //[2, 3, 4, 5]
 console.log(result13);      //[5]

slice()

  ⑧push()

    语法:arr.push(elem1,elem2...);

    用于向数组末尾添加一个或多个元素,并返回数组的长度。修改原数组

 var arr12=[1,2,3,4];
 var result14=arr12.push(5);
 console.log(arr12);     //[1, 2, 3, 4, 5]
 console.log(result14);  

push()

  ⑨pop()

    语法:arr.pop();

    用于删除数组的最后一个元素,并返回被删除的元素。修改原数组。

 var arr13=[1,2,3,4];
 var result15=arr13.pop();
 console.log(arr13);     //[1, 2, 3]
 console.log(result15);  

pop()

  ⑩shift()

    语法:arr.shift();

    用于删除数组的第一个元素,并返回被删除的元素。修改原数组。

 var arr14=[1,2,3,4];
 var result16=arr14.shift();
 console.log(arr14);     //[2, 3, 4]
 console.log(result16);  

shift()

  ⑪unshift()

    语法:arr.unshift(elem1,elem2,...);

    用于向数组开头添加一个或多个元素,并返回数组的长度。修改原数组

 var arr15=[1,2,3,4];
 var result17=arr15.unshift(5);
 console.log(arr15);     //[5, 1, 2, 3, 4]
 console.log(result17);  

unshift

   总结:数组API比较多,但是一定要记住。并且分清哪些是修改原数组的,哪些没有修改。

修改原数组的API:   reverse()、sort()、push()、pop()、shift()、unshift()、splice()
不修改原数组的API:   toString()、concat()、slice()、join()

JavaScript新手学习笔记1——数组的更多相关文章

  1. JavaScript新手学习笔记(一)

    1.JavaScript 对大小写敏感. JavaScript 对大小写是敏感的. 当编写 JavaScript 语句时,请留意是否关闭大小写切换键. 函数 getElementById 与 getE ...

  2. JavaScript新手学习笔记3——三种排序方式(冒泡排序、插入排序、快速排序)

    每种编程语言学到数组的时候,都会讲到排序算法,当时学C语言的时候,卡在排序算法.今天来总结一下javascript中如何实现三种排序算法. 1.冒泡排序(默认升序排列哦) 原理: 冒泡排序的原理,顾名 ...

  3. JavaScript新手学习笔记4——我记不住的几个坑:短路逻辑、按值传递、声明提前

    1.短路逻辑 逻辑运算中,如果前一个条件已经可以得出最终结论,则后续所有条件不再执行!这里的逻辑运算指的是逻辑与和逻辑或. 我们要理解逻辑与是两个条件都为真的时候,才为真,如果第一个就是假的,那么后面 ...

  4. JavaScript学习笔记之数组(二)

    JavaScript学习笔记之数组(二) 1.['1','2','3'].map(parseInt) 输出什么,为什么? ['1','2','3'].map(parseInt)//[1,NaN,NaN ...

  5. PHP学习笔记之数组篇

    摘要:其实PHP中的数组和JavaScript中的数组很相似,就是一系列键值对的集合.... 转载请注明来源:PHP学习笔记之数组篇   一.如何定义数组:在PHP中创建数组主要有两种方式,下面就让我 ...

  6. javascript正则表达式 - 学习笔记

    JavaScript 正则表达式 学习笔记 标签(空格分隔): 基础 JavaScript 正则表达式是用于匹配字符串中字符组合的模式.在javascript中,正则表达式也是对象.这些模式被用于Re ...

  7. javaScript 对象学习笔记

    javaScript 对象学习笔记 关于对象,这对我们软件工程到学生来说是不陌生的. 因为这个内容是在过年学到,事儿多,断断续续,总感觉有一丝不顺畅,但总结还是要写一下的 JavaScript 对象 ...

  8. JavaScript正则表达式学习笔记(二) - 打怪升级

    本文接上篇,基础部分相对薄弱的同学请移步<JavaScript正则表达式学习笔记(一) - 理论基础>.上文介绍了8种JavaScript正则表达式的属性,本文还会追加介绍几种JavaSc ...

  9. JavaScript简易学习笔记

    学习地址:http://www.w3school.com.cn/js/index.asp 文字版: https://github.com/songzhenhua/github/blob/master/ ...

随机推荐

  1. jquery live hover事件的替代写法

    HTML中的hover行为通常在样式中定义,利用jquery实现此效果有两种情况. 第一种是常见的针对页面中静态的元素,以改变元素样式中的border-color为例,写法如下: $(function ...

  2. springmvc的渲染

    1.1.1 支持绑定表单对象 我们先来看如下使用form标签的一个示例: Jsp代码 收藏代码 <form:form action="formTag/form.do" met ...

  3. php 在web端读出pdf 与各种文件下载

    单纯的下载功能实现 <?php // 表示调用文本类型为pdf的应用 header('Content-type: application/pdf'); // 这句可以输出下载页面进行下载 hea ...

  4. Android - Layout时发生'Unfortunately xxx has stopped'

    概述 我在进行LinearLayout和TableLayout的嵌套布局的时候,发生题的错误.如下布局xml代码: <LinearLayout xmlns:android="http: ...

  5. Sql Server跨服务器导出特定表数据

    --连接服务器 exec sp_addlinkedserver 'Test',' ','SQLOLEDB', '192.168.0.7'; exec sp_addlinkedsrvlogin 'Tes ...

  6. 你好,C++(34)有一只叫做多利的羊 6.2.4 拷贝构造函数

    6.2.4  拷贝构造函数 在C++世界中,除了需要使用构造函数直接创建一个新的对象之外,有时还需要根据已经存在的某个对象创建它的一个副本,就像那只叫做多利的羊一样,我们希望根据一只羊创建出来另外一只 ...

  7. CentOS6.5 下 Mysql5.7主从复制

    包下载http://url.cn/WrNg5S 主数据库:192.168.161.129 从数据库1:192.168.161.130 从数据库1:192.168.161.138 MySQL安装地址:/ ...

  8. 初涉JavaScript模式 (7) : 原型模式 【三】

    组合使用构造函数模式和原型模式 上篇,我们提到了原型模式的缺点,就是每个实例不能拥有自己的属性,因为纯原型模式所有的属性都是公开给每个实例的,故我们可以组合使用构造函数模式和原型模式.构造函数用来定义 ...

  9. 对于方法 String.Contains,只支持可在客户端上求值的参数。

    var ProjectLevel_XJJS = "06,07,08,09"; p.Where(e =>ProjectLevel_XJJS.Contains(e.LevelCo ...

  10. 编写可维护的javascript代码--- 2015.11.21(基本格式化)

    1.1 每行的编码需要控制在80字符. 1.2 改用:的地方必须用上. 1.3 缩进用2个制表符,不过4个也可以. 1.4 当代码一行显示不全需要折行显示,这里我暂且假定缩进为4个字符. 1.5 如果 ...