2.Array类型
2.1 创建数组
两种方式:
1.new Array();
//创建一个空数组
var arr1 = new Array();
//创建一个长度为10的空数组, var arr2 = new Array(10); //创建一个包含一个字符串good的数组 var arr3 = new Array("good");
特别说明:当传进去括号中的只有一个值,这个值是数值的话,就会创建长度为这个数值的数组;如果是其他值,那就是包含一个这个值的数组。
2.数组字面量,使用方括号:
// 创建空的
var fish = [];
//创建有值的,在括号里添加
var cars = ["BMW","BenZ","Ferrari"]; //注意,创建数组不要留空项。浏览器兼容性问题,IE8或以前版本会认为这是有3项,下面这种不建议。 var nums = [1,2,];
2.2 访问数组中的值
和其他语言一样下标访问(下标从0开始):
//创建数组
var cars = ["BMW","BenZ","Ferrari"]; console.log(cars[0]); //BMW console.log(cars[2]); //Ferrari //修改数组某个值,对其重新赋值就像 cars[0] = "lala";
2.3 常用属性和方法
这里给出常用的属性和方法,更详细的在js的文档里面有。
1.length属性:返回数组的长度。
var num = [1,2,3,4,5] console.log(arr.length); //5 //妙用:通过改变数组的length可以改变数组长度 arr.length = 10; //现在num 数组长度为10了 console.log(num); //[1,2,3,4,5,,,,,] 后面5个值是空的
2.Array.isArray()方法:判断对象是不是数组
//用了判断改对象是不是数组
var arr = [];
console.log(Array.isArray(arr)); //true console.log(Array.isArray("s"); //false
3.join()方法:改变数组分隔方式,返回新的分隔符字符串
//原来是使用逗号连接的
var arr = [1,2,3,4,5]; //用|连接,注意只是返回字符串,不会改变数组里面的连接方式 console.log((arr.join("|")); //'1|2|3|4|5' console.log(arr); //[1,2,3,4,5] 还是一样用逗号的
4.栈方法:pop()和push()组合使用实现栈的先进后出
//引入这两方法是为了用数组实现栈的功能
//push() :从数组最后添加数据
var stack = new Array();
//添加一个10 stack.push(10); //添加一个5 stack.push(5); //添加一个100 stack.push(100); //现在stack中有3个数值 console.log(stack); //[10,5,100] //pop() :从数组最后删除并返回该数据 stack.pop(); //100 100被删除 console.log(stack); //[10,5] 剩下两数
5.队列方法:shift()和push()组合使用实现先进先出
这里就不再举例了,类似与栈的操作,只是操作的函数不同,栈的pop是从后面删除,而队列的shift是从前面删除,这样就先进先出了。
6.重排序方法:sort()和reverse()
//sort()默认是按照ascii码表排序的,所以会出现下面这种情况
var arr = [5,12,18,1]; console.log(arr.sort()); //[1,12,18,5] //为了可以对数字正常排序,为sort传入一个比较函数 function comp(a,b){ return a-b; } //再来排序 arr.sort(comp); console.log(arr); //[1,5,12,18] 这次正确了 //reverse()是将数组完全颠倒 arr.reverse(); console.log(arr); //[18,12,5,1]
7.合并和剪切:concat() , slice()
//1.concat() 在该数组的基础上添加元素,返回一个新数组(不会改变原数组)
var arr1 = [1,2,3]; //在arr1基础添加4,5,6,并返回给arr2,不会改变arr var arr2 = arr1.concat(4,5,6); console.log(arr2); //[1,2,3,4,5,6] //2.slice() 通过传入开始和终点值来剪切数组,并返回新数组 var arr3 = arr2.slice(1,5); console.log(arr3); //[2,3,4,5]
8.最强大的数组方法:splice()
删除:接受两个参数,第一个是开始删除位置,第二个是删除的个数,返回一个删除项的数组
//用来删除
var arr = [1,2,3,4,5,6,7]; var del_arr = arr.splice(0,4); //从0位开始删除4项,即前4项 console.log(del_arr); //[1,2,3,4] console.log(arr); //[5,6,7] arr数组剩下后面3项了
插入:输入3个参数,起始位置,0(删除项数设为0),要插入的值
//用来插入
var arr1 = [1,2,3,4,5,6]; arr1.splice(3,0,100);//从位置3插入一个100值 console.log(arr1); //[1,2,3,100,4,5,6];
替换:指定3个参数,起始位置,要删除的项,插入的值
//替换
var arr2 = [1,2,3,4,5]; //我要替换3,替换成100 arr2.splice(2,1,100); //起始位是2,删除1项(就是3了),载插入100,ok console.log(arr2); //[1,2,100,4,5]
9.位置函数:indexOf()和lastIndexOf():这两个方法用来找数值下标位置。都接受两个参数,第一个是要找的值,第二个是开始位置
//indexOf() 只传一个参数时默认从0开始找数值,找到返回这个数的数组位置,没有返回-1
var arr = [100,12,123,1234]; console.log(arr.indexOf(123)); //2 数组的位置2 //lastIndexOf() 和indexOf查找顺序正好相反,它从数组末尾开始找起 console.log(arr.lastIndexOf(100)); //0
10.forEach()方法,对每一项进行处理
//接受一个函数,函数传入2个参数表示当前数值和其下标位置
var arr = [1,2,3,4,5]; arr.forEach(function(item, index){ console.log(item + 1); } //输出 2,3,4,5,6 每一项都加1了
转http://www.cnblogs.com/Ry-yuan/p/7688322.html 感谢原作者