javascript的数组可以包含各种类型的数据。

1. 数组的长度 ,直接用 length 属性;

var arr=[1,2,3];
arr.length;

js中,直接给数组的length赋值是会改变数组的大小的,例如:

var array=[1,2,3];
console.log(array.length);//输出array的长度为3
array.length=5;//给array的长度赋值为5,此时array的内容变为[1,2,3,undefined,undefined]
console.log(array);//console.log输出还是会输出1,2,3,但是数组的长度已经改变了,如果改成alert(array),则可以看到弹出框内容为1,2,3,,
console.log(array[4]);//输出为undefined

2. 数组的赋值和修改值

数组可以通过索引值修改内如和赋值

var array=[1,2,3];
array[0]=0;
console.log(array);//输出结果为 0,2,3

!!!如果通过索引赋值时,索引超过了数组的长度范围,会引起数组大小的变化:

var array=[1,2,3];
array[5]=5;
console.log(array);//array变为[1,2,3,undefined,undefined,5]

一般最好不要直接改变数组的大小,容易引起问题。

3. indexOf()

数组可以通过indexOf()来查看某个元素的位置

var arr=["a","b","c"];
console.log(arr.indexOf("c"));//输出结果为2
console.log(arr.indexOf(2));//输出结果为-1,当arr里不包含查询的这个值时,则返回-1

4. push()和pop()

push()向数组的末尾添加若干元素,pop()把数组的最后一个元素删除掉。

push()例子:

var arr=["a","b","c"];
arr.push("sky","car");
console.log(arr);//arr的内容变为["a", "b", "c", "sky", "car"]

pop()例子,接着push()例子继续:

console.log(arr.pop());//输出car;由此发现一个方法,可以利用pop()获取数组的最后一个元素
console.log(arr);//arr的内容变为["a", "b", "c", "sky"],剩下四个值
arr.pop();
arr.pop();
arr.pop();
arr.pop();//arr连续pop四次,arr变为空数组
console.log(arr.pop());//空数组继续pop不会报错,而会返回undefined值

!!!由此发现一个方法,可以利用pop()来获取数组的最后一个元素

5. unshift()和shift()

unshift()向数组的开端插入若干元素,shift()是闪电数组的第一个元素。

unshift()例子:

var arrshift=["a","b","c"];
arrshift.unshift("sky","car");
console.log(arrshift);//arrshift变为["sky", "car", "a", "b", "c"]

shift()例子:

console.log(arrshift.shift());//输出sky
console.log(arrshift);//arrshift变为["car", "a", "b", "c"]
arrshift.shift();
arrshift.shift();
arrshift.shift();
arrshift.shift();//shift()四次之后,数组变为空数组
console.log(arrshift.shift());//空数组shift()不会报错,会返回undefined值

!!!同理,可以利用shift()来获取数组的第一个元素

6. join()

join()方法是用来把数组的每个元素都用指定的字符串连接起来,然后返回连接后的字符串,这个很非常有用的方法。例子:

var arrJoin=["Olive","Kong"];
console.log(arrJoin.join("-"));//返回Olive-Kong字符串

如果数组中存储的不是字符串元素,那么join()方法会把元素自动转换成字符串,然后再连接。例子:

var arrJoin=[13,14];
console.log(arrJoin.join(""));//返回1314字符串

7. reverse()

reverse()方法就是把数组倒置。例子:

var arrReverse=["Kong","Olive"];
console.log(arrReverse.reverse());//arrReverse变为了["Olive", "Kong"]

8. sort()

sort()方法是用来给数组排序的,直接调用时,按照默认顺序排序。例子:

var arrSort=[2,5,1,40,26];
console.log(arrSort.sort());//排序结果为[1, 2, 26, 40, 5]
var arrSort2=["sort","block","css","html","js","sky"];
console.log(arrSort2.sort());//排序结果为["block", "css", "html", "js", "sky", "sort"]
var arrSort3=[1,"block","css","html","js","sky"];
console.log(arrSort3.sort());//排序结果为[1, "block", "css", "html", "js", "sky"]
var arrSort4=[1,"2","3","html","js","sky"];
console.log(arrSort4.sort());//排序结果为[1, "2", "3", "html", "js", "sky"]

可以看出来默认的排序顺序就是数字排在前面,字符排在后面,字符串是按照字母的顺序排序,数字却不是按照大小来排序的,那么数字能否进行升序排序或者降序排序呢。当然是可以的,请看文章《js学习篇--数组按升序降序排列》,这里就不多做介绍了。

9. slice()

slice()方法是用来截取数组的部分元素,然后返回一个新的数组的。

var arrSlice=[1,2,3,4,5,6];
console.log(arrSlice.slice(0,4));//截取从索引0到索引为4之间的元素(不包括索引为4的值),结果为[1,2,3,4]
console.log(arrSlice.slice(4));//截取从索引4之后的所有元素,包括索引为4的元素,结果为[5,6]

10. splice()

splice()方法是用来对数组进行修改的(可以添加也可以删除),它可以从指定的索引开始删除若干元素,然后再从该位置添加若干元素。例子:

var arrSplice=["olive","kong","is","studying","js"];
console.log(arrSplice.splice(3,2,"playing","outside"));// 从索引3开始删除2个元素,然后再添加两个元素:返回值["studying","js"]
console.log(arrSplice);//上面的语句后,arrSplice变为了["olive", "kong", "is", "playing", "outside"]

只删除不添加,例子(接着上面的例子进行的):

arrSplice.splice(0,2);//从索引0开始向后删除两个元素,不添加任何元素
console.log(arrSplice);//数组变为["is", "playing", "outside"]

只添加不删除,例子(继续接着上面的例子进行):

arrSplice.splice(0,0,"Popeye");//从索引0开始,向后删掉0个元素,然后添加上1个元素,console 的返回值为[]
console.log(arrSplice);//数组变成["Popeye", "is", "playing", "outside"]

11. concat()

concat()方法是用来把当前的数组和另一个数组连接起来,并返回一个新的数组的。例子:

var arrConcat=[1,2,3];
var arrNew=arrConcat.concat(["a","b"]);
console.log(arrConcat);//返回值为[1,2,3],原数组并没有变
console.log(arrNew);//返回新数组为[1, 2, 3, "a", "b"]
//concat可以连接好几个数组
var arrC1 = ["George","John","Thomas"];
var arrC2 = ["James","Adrew","Martin"];
var arrC3 = ["William","Franklin","Martin"];
console.log(arrC1.concat(arrC2,arrC3));

js学习篇1--数组的更多相关文章

  1. js学习篇--数组按升序降序排列

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. js实用篇之数组、字符串常用方法

    常常在开发中,会使用到很多js数组和字符串的处理方法,这里列举一些我常用到的一些,方便大家参考使用. 数组方面 push:向数组尾部增加内容,返回的是新数组的长度. var arr = [1,2,3] ...

  3. JS学习笔记 (四) 数组进阶

    1.基本知识 1.数组是值的有序集合.每个值叫做一个元素,而每个元素在数组中的位置称为索引,以数字表示,以0开始. 2.数组是无类型的.数组元素可以是任意类型,并且同一个数组中的不同元素也可能有不同的 ...

  4. [前端JS学习笔记]JavaScript 数组

    一.JavaScript数组的奇葩 大多数语言会要求数组的元素是同个类型, 但是JavaScript允许数组元素为多种类型. var arr = ["羽毛球", 666, {&qu ...

  5. 原生js 学习之array 数组

    Array的原生方法:  concat(): 连接两个或更多的数组哦 join(): 把数组的所有元素放在一个字符串中 pop():删除并返回数组的最后一个元素 push():向数组的末尾添加一个元素 ...

  6. 【学习】js学习笔记:数组(二)

    二维数组 例子:矩形反转: <script> var arr=[[1,1,1,1,1],[2,2,2,2,2],[3,3,3,3,3],[4,4,4,4,4],[5,5,5,5,5]]; ...

  7. 【学习】js学习笔记:数组(一)

    1.创建数组并赋值 //对象方式 var arr=new Array(1,2,3,4); //隐形声明方式 var arr2=[5,6,7,8]; 2.数组可以存储任何类型的数据 3.访问数组,是用下 ...

  8. OC学习篇之---数组对象的引用计数问题和自动释放池的概念

    之前一片文章中我们介绍了OC中的两个关键字@property和@synthesize的使用的使用: http://blog.csdn.net/jiangwei0910410003/article/de ...

  9. Node.js学习准备篇

    这里写个Node.js 准备篇包含内容有node.js 的安装,命令行运行node.js 文件,使用webStrom 编写 node.js 时有提示功能,并用webStrom 运行 Node.js 其 ...

随机推荐

  1. ASP.NET MVC 5 05 - 视图

    PS: 唉,这篇随笔国庆(2015年)放假前几天开始的,放完假回来正好又赶上年底,公司各种破事儿. 这尼玛都写跨年了都,真服了.(=_=#) 好几次不想写了都. 可是又不想浪费这么多,狠不下心删除.没 ...

  2. C#求斐波那契数列第30项的值(递归和非递归)

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  3. 简单配置 nginx 反向代理

    # Nginx 域名反向代理配置# 安装nginx yum install nginx -y# 修改配置文件 进入配置文件目录 cd /etc/nginx/conf.d 新建配置文件以.conf结尾 ...

  4. mdadm设定RAID磁盘阵列,且当分区故障后如何重建

    首先,fdisk建立不同分区,且设为fd格式 其次, mdadm -C md0 -a yes -l -n /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sd ...

  5. input输入框的光标

    上午的时候,以前一起配合Java后端的哥们问了个input光标的问题. 需求是这样:只能输入数字的input(一开始以为是输入金额这些的,后来才晓得是用来填写手机号) 他采用是直接百度来的如下方法: ...

  6. 2016 华南师大ACM校赛 SCNUCPC 非官方题解

    我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...

  7. 代码管理工具 --- git的学习笔记二《git的工作原理》

    通过几个问题来学习代码管理工具之git 一.git是什么?为什么要用它?使用它的好处?它与svn的区别,在Mac上,比较好用的git图形界面客户端有 git 是分布式的代码管理工具,使用它是因为,它便 ...

  8. nodejs中异常错误的处理方式

    因为nodejs是单线程的,所以一旦发生错误或异常,如果没有及时被处理整个系统就会崩溃.错误异常有两种场景的出现,一种是代码运行中throw new error没有被捕获,另一种是Promise的失败 ...

  9. word-break|overflow-wrap|word-wrap——CSS英文断句浅析

    ---恢复内容开始--- word-break|overflow-wrap|word-wrap--CSS英文断句浅析 一 问题引入 今天在再次学习 overflow 属性的时候,查看效果时,看到如下结 ...

  10. [LeetCode] Remove Linked List Elements 移除链表元素

    Remove all elements from a linked list of integers that have value val. Example Given: 1 --> 2 -- ...