js学习笔记——数组方法
join()
把数组中所有元素转化为字符串并连接起来,并返回该字符串,
var arr=[1,2,3];
var str=arr.join("#"); //str="1#2#3";
如果没有指定分隔符,则默认为逗号
var str2=arr.join(); //str2="1,2,3";
reverse()
在原数组上把元素的顺序颠倒过来,并返回该数组
var arr=[1,2,3];
arr.reverse(); //arr=[3,2,1];
sort()
在原数组上对数组元素进行排序,并返回该数组
在没有使用参数的时候,是将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序,如
var arrNum=[2,11,3];
var arrStr=["bb","aa","cc"];
arrNum.sort(); //arrNum=[11,2,3]
arrStr.sort(); //arrStr=["aa","bb","cc"];
对于数组里出现不同类型的元素的时候,比如数字与字符串,数组的元素是数组,当然如果一个数组里的元素有好几种数据类型,如函数,数组,对象,字符串……再对此数组进行排序是没有实际意义的
var arr1=["22",11,3];
var arr2=[[3,2],[111,3,222],[222,333]];
arr1.sort(); //arr1=[11,"22",3];
arr2.sort(); //arr2=[[111,3,222],[222,333],[3,2]];
sort()能接受一个比较函数作为参数,如:
var arrNum2=[3,5,2,1,4];
arrNum2.sort(function(a,b){
return a-b;
}); //arrNum2=[1,2,3,4,5];
arrNum2.sort(function(a,b){
return b-a;
}); //arrNum2=[5,4,3,2,1];
concat()
这个不懂怎么描述,直接看结果就明白啥意思了,他放回的是新建的数组,不会对原数组作修改
var arr=[1,2,3];
var arr2=[4,5];
var arr3=[6,7,[8,9]];
var str="hello wrold";
var num=10; arr.concat(arr2); //返回[1,2,3,4,5]
arr.concat(str); //返回[1,2,3,"hello world"]
arr.concat(num); //返回[1,2,3,10];
arr.concat(arr3); //返回[1,2,3,6,7,[8,9]]
slice()
返回指定数组的子数组,返回的是一个新的数组
他接受两个参数,返回的数组包含第一个参数指定位置和所有但不包含第二个参数指定位置的所有数组元素,如
var arr=[1,2,3,4,5];
arr.slice(1,3); //返回[2,3];
如果只指定一个参数,则返回从第一个参数指定的位置开始到数组结尾的所有数组元素,如
var arr=[1,2,3,4,5];
arr.slice(2); //返回[3,4,5];
如果参数是负数,则表示倒数位置,如-1表示倒数第一个元素,-3表示倒数第三个元素,如
var arr=[1,2,3,4,5];
arr.slice(1,-1); //return [2,3,4];
arr.slice(-3,-1); //return [3,4];
arr.slice(-6,-1); //return [1,2,3,4];
如果第一个参数比第二个参数大,或者参数值比数组长度大,如下面这些都是放回空数组[]
var arr=[1,2,3,4,5];
console.log(arr.slice(4,1));
console.log(arr.slice(-1,-5));
console.log(arr.slice(8,10));
splice()
splice()插入或删除数组元素的通用方法,是在原数组上操作,会修改原数组,同时原数组的元素索引值会相应的增加或减小;返回的是被删除元素组成的数组,如果被删除的个数为零,则返回空数组[]
第一个参数指定了要插入或删除的元素在数组中的位置,第二个参数指定了从指定位置开始的要删除的元素个数;如果省略了第二个参数,则从起点开始到数组结尾的所有的元素都被删除。
var arr=[1,2,3,4,5,6];
var returnVal=arr.splice(4); //returnVal=[5,6]; arr=[1,2,3,4];
returnVal=arr.splice(1,2); //returnVal=[2,3]; arr=[1,4];
returnVal=arr.splice(1,1); //returnVal=[4]; arr=[1];
插入元素
var arr=[1,2,3,4,5,6];
var returnVal=arr.splice(1,0,'a','b'); //returnVal=[]; arr=[1,'a','b',2,3,4,5,6];
returnVal=arr.splice(1,2,7,[8,9]); //returnVal=["a","b"]; arr=[1,7,[8,9],2,3,4,5,6];
push()与pop()
push():在数组的尾部添加一个或多个元素,并返回数组新的长度
var arr=[];
var returnVal=arr.push("2",3); //arr=[1, "2", 3], returnVal=2;
pop():在数组的尾部删除一个元素,并返回删除的元素
var arr=[1,2,3];
var returnVal=arr.pop(); //arr=[1, 2], returnVal=3;
两个方法都修改并替换了原数组
unshift()与shift()
unshift()与shift()方法类似于push()与pop(),只不过他是在数组头部进行插入或删除操作,同时已存在的元素的索引会跟着变得,不会出现稀疏数组
var arr=[1,2];
var returnVal=arr.unshift(3); //arr=[3,1,2], returnVal=3;
var arr=[1,2,3];
var returnVal=arr.shift(); //arr=[2,3], returnVal=1;
当一次性插入多个元素,与一个一个插入元素得到的结果是有区别的,如:
var arr=[1,2];
var returnVal=arr.unshift(4); //arr=[4,1,2], returnVal=3;
returnVal=arr.unshift(5); //arr=[5,4,1,2], returnVal=4;
returnVal=arr.unshift(6); //arr=[6,5,4,1,3], returnVal=5; var arr2=[1,2];
var returnVal2=arr2.unshift(4,5,6); //arr2=[4,5,6,1,2], returnVal2=5;
toString()
当然数组也有toString()方法,他与没有参数的join()方法一样返回字符串
var str=[1,"a",3].toString(); //str="1,a,3";
js学习笔记——数组方法的更多相关文章
- JS学习笔记-数组
ECMAScript中没有提供类和接口等的定义,但它却是一门面向对象的语言,由于它能够通过其它 方式实现类似高级语言的面向对象功能,这些内容将在后面的文章中进行一步步的总结.此篇仅对JS中对象作简要说 ...
- 【学习】js学习笔记---数组对象
一.属性 length 数组的大小.数组的length属性总是比数组中定义的最后一个元素的下标大一,设置属性length的值可以改变数组的大小.如果设置的值比它的当前值小,数组将被截断,其尾部的元素将 ...
- JS学习笔记——数组去重
<script type="text/javascript"> //indexOf"是ECMAScript5方法,IE8以下不支持,需多写兼容低版本浏览器代码 ...
- Java学习笔记之---方法和数组
Java学习笔记之---方法与数组 (一)方法 (1)什么是方法? 方法是解决一类问题的步骤的有序组合 方法包含于类或对象中 方法在程序中被创建,在其他地方被引用 (2)方法的优点 使程序变得更简短而 ...
- WebGL three.js学习笔记 法向量网格材质MeshNormalMaterial的介绍和创建360度全景天空盒的方法
WebGL学习----Three.js学习笔记(5) 点击查看demo演示 Demo地址:https://nsytsqdtn.github.io/demo/360/360 简单网格材质 MeshNor ...
- vue.js 学习笔记3——TypeScript
目录 vue.js 学习笔记3--TypeScript 工具 基础类型 数组 元组 枚举 字面量 接口 类类型 类类型要素 函数 函数参数 this对象和类型 重载 迭代器 Symbol.iterat ...
- 2019-4-29 js学习笔记
js学习笔记一:js数据类型 1:基本数据类型 number类型(整数,小数) String类型 boolean类型 NaN类型其实是一个nu ...
- 基于jquery的插件turn.js学习笔记
基于jquery的插件turn.js学习笔记 简介 turn.js是一个可以实现3d书籍展示效果的jq插件,使用html5和css3来执行效果.可以很好的适应于ios和安卓等触摸设备. How it ...
- 【转】Backbone.js学习笔记(二)细说MVC
文章转自: http://segmentfault.com/a/1190000002666658 对于初学backbone.js的同学可以先参考我这篇文章:Backbone.js学习笔记(一) Bac ...
随机推荐
- 2017-1-9css
2017-1-9css css border-image详解 http://www.360doc.com/content/14/1016/13/2792772_417403574.shtml 最简单的 ...
- Linux启动网卡时出现RTNETLINK answers: File exists错误解决方法
这里说一下,如果复制了虚拟机,设置新的MAC地址为什么? 在虚拟机的网络设置中--->高级.然后找到如下窗口,生成新的MAC地址即可. ----------------------------- ...
- UNIX网络进程间通信漫谈(1)
进程间通信 IPC是进程间通信的简称,指的是运行在某个操作系统上的不同进程间各种消息传递方式,在Unix操作系统过去30年的演变史中,消息传递经历了如下几个阶段: 管道,管道是第一个广泛使用的IPC形 ...
- Java 多线程之龟兔赛跑(文件夹——读取文件——时间)
版权声明:本文为博主原创文章,未经博主允许不得转载. 描述: 乌龟和兔子(各自是一个Java线程)在我们的电脑上赛跑,我们为它们指定一个跑道(本地文件系统上的一个目录,该目录包含子目录).跑的规则是读 ...
- Codeforces 235E Number Challenge
http://codeforces.com/contest/235/problem/E 远距离orz......rng_58 证明可以见这里(可能要FQ才能看到) 还是copy一下证明吧: 记 $$f ...
- bzoj3767 A+B Problem加强版
Description Input 输入A,B Output 输出A+B. Sample Input 1 1 Sample Output 2 HINT 对于100%的数据,保证 |A| , | ...
- libvirtsAPI
mongodb远程服务器连接 mongo -uroot -p321 master.puppet.org:27017/admin
- 计算N!的质因数2的个数
容易得出N!质因数2的个数 = [N / 2] + [N / 4] + [N / 8] + .... 下面通过一个简单的例子来推导一下过程:N = 10101(二进制表示)现在我们跟踪最高位的1,不考 ...
- 二十六个月Android学习工作总结
1.客户端的功能逻辑不难,UI界面也不难,但写UI花的时间是写功能逻辑的两倍. 2.写代码前的思考过程非常重要,即使在简单的功能,也需要在本子上把该功能的运行过程写出来. 3.要有自己的知识库,可以是 ...
- [置顶] Android访问控制系统测试与评估
5.1实验方案 通过以上章节,本文阐述了目前Android平台上的恶意软件以“隐私窃取”和“恶意扣费”类为主,本研究课题访问控制的目标也正是阻止恶意软件“隐私窃取”和“恶意扣费”的行为,因此,本实验方 ...