js数组(五)
一、数组的声明
方法一:【构造函数形式声明】
var array = new Array(); //[] var array = new Array(10); //数组长度:array.length = 10; var array = new Array('tom',20,null); //['tom',20,null]
方法二:【数组字面量形式创建】
var array = []; //[] var array = [1,2,3,'tom']; //[1,2,3,'tom']
访问数组下标越界的元素为undefined【数组中元素不存在】。
二、数组使用及序列化
1.改变数组的长度及向数组中添加数据
eg:
var arr = [1,2,3,4]; //下标为:0,1,2,3 console.log(arr.length); //4 arr[6] = ['hello']; //[1,2,3,4,,,'hello'] //中间数据为undefined
2.typeof、instanceof、isArray()的相关测试
typeof:查看arr数组的数据类型
instanceof:判断某数组是否属于某原型对象
isArray():判断某变量是否是数组
eg:
var arr = [1,2,3,4]; console.log(typeof arr); //object console.log(arr instanceof Array); //true console.log(arr instanceof Object); //true console.log(Array.isArray(arr)); //true function test(){ console.log(Array.isArray(arguments)); //false 【arguments不是数组,它是一个类数组对象】 } test();
3.数组的序列化【将数组转化为字符串】
a、toString()方法: 【将数组转化为相应的字符串】
console.log(arr.toString()); //1,2,3,4
b、join() 方法:【将数组转化为字符串并按照携带的参数串对数组中元素进行分割连接】
console.log(arr.join()); //1,2,3,4【不携带参数默认以逗号分割】 console.log(arr.join("&")); //1&2&3&4
c、JSON.stringify() 方法:【将数组转化为相应的JSON字符串】
console.log(JSON.stringify(arr)); //[1,2,3,4]【字符串类型】
三、数组的一些相关方法:【方法详细信息请查看下一篇文章】
⑴、数组的栈,队列方法【调用这些方法原数组会发生改变】
1.栈 LIFO (Last-In-First-Out)
a、push() 可接受任意类型的参数,将它们逐个添加到数组的末尾。【返回数组的长度】
b、pop() 从数组的末尾移除最后一项,减少数组的length值。【返回移除的项】
2.队列 FIFO (First-In-First-Out)
a、shift() 移除数组中的第一个项,同时将数组的长度减一。【返回移除的项】
b、unshift() 在数组的前端添加任意个项。【返回数组的长度】
⑵、数组的排序方法【reverse()方法、sort()方法】(原数组发生改变);
1、reverse()方法:【对数组项进行反转】
2、sort()方法【数组排序,返回排序后的数组】
⑶、截取方法:
1、数组拼接:concat()方法 【不改变原数组】
2、数组切割:slice()方法 【不改变原数组】
3、splice() 【改变原数组】(数组的删除、插入、修改)
⑷、索引方法
1、indexOf() 【指定数组索引位置正向查找元素】
2、lastIndexOf() 【指定数组索引位置反向查找元素】
⑸、迭代方法
参数: 每一项上运行的函数,运行该函数的作用域对象(可选)
1、every()
对数组中的每一运行给定的函数,如果该函数对每一项都返回true,则该函数返回true
2、some()
对数组中的每一运行给定的函数,如果该函数对任一项都返回true,则返回true
3、filter()
对数组中的每一运行给定的函数,会返回满足该函数的项组成的数组
4、map()
对数组中的每一元素运行给定的函数,返回每次函数调用的结果组成的数组【即函数返回值组成的数组】
5、forEach()
对数组中的每一元素运行给定的函数,没有返回值,常用来遍历数组