本文地址:http://www.cnblogs.com/veinyin/p/7607293.html
一个数组中可以存储不同类型的值,可以混合存储数字、字符串、对象等
1 创建数组
1.1 构造函数
1 var colors = new Array(); //自动长度 2 3 var colors = new Array(20); //长度为20
1.2 数组字面量
1 var colors = ["red","yellow","blue"]; 2 3 var colors = []; //空数组
2 检测数组
if(Array.isArray(value)) statement
3 转换方法
3.1 toString()
alert(colors.toString());
3.2 toLocaleString()
3.3 valueOf()
alert(colors.valueOf());
3.4 join()
alert(colors.join("||")); //用 || 分隔各数组项
4 栈方法
4.1 插入数据
colors.push("value");
4.2 弹出数据
var value = colors.pop();
5 队列方法
5.1 正向操作,数组后端添加,前端取出
5.1.1 插入数据
colors.push("value");
5.1.2 取出数据
var value = colors.shift();
5.2 反向操作,数组前端添加,后端取出
5.2.1 插入数据
colors.unshift("value");
5.2.2 取出数据
var value = pop();
6 重排序
6.1 数组项逆序排列
nums.reverse();
6.2 数组项升序排列
nums.sort();
sort() 函数可以接受一个比较函数作为参数,以便指定哪个值位于哪个值前面
1 var num = [0,1,5,10,15]; 2 document.getElementById("index").innerHTML = num.sort().join("||"); 3 num.sort(compare); 4 document.getElementById("index2").innerHTML = num.join("||"); 5 }; 6 function compare(num1,num2){ 7 if(num1 > num2) { 8 return 1; 9 } 10 else if(num1 < num2){ 11 return -1; 12 } 13 else{ 14 return 0; 15 } 16 }
第一个结果是 sort() 排序,先比较第一个字符,再比较第二个字符
第二个结果是使用了参数的结果,完全升序,将 return 的正负 1 交换,则实现完全降序
7 concat()
将参数添加到数组末端,可接受一个或多个参数
num.concat(12,34,45,23);
8 slice()
8.1 一个参数
slice(num); //返回下标为 num 到数组末尾的所有数据项
8.2 两个参数
slice(num1,num2); //返回下标为 num1 到 num2-1 的所有数据项
9 splice()
9.1 删除
nums.splice(0,2); //删除下标为 0 开始的两个数据项
9.2 插入
num.splice(2,0,"12","34","45","23"); //插入位置,删除项数,插入内容
插入数据为下标 2 处开始,删除项若不为0,删除原数组中开始项后的数据项
9.3 替换
nums.splice(2,1,"22");
其实就是插入的变形
10 位置方法
10.1 indexOf()
1 nums.indexOf(3); 2 //在 nums 数组中从首端开始查询是否存在 3, 遇到第一个则返回其下标
10.2 lastIndexOf()
1 nums.lastIndexOf(3); 2 //在 nums 数组中从末端开始查询是否存在 3, 遇到第一个则返回其下标
11 迭代方法
func 接收 3 个参数: 数组项的值,该项在数组中的位置,数组对象本身
11.1 nums.every(func);
所有数组项的 func 值均为 true 才返回 true, 否则返回 false
11.2 nums.some(func);
有一个数组项的函数值为 true 则返回 true
11.3 nums.filter(func);
返回函数值为 true 的项组成的数组
11.4 nums.map(func);
返回函数返回的结果组成的数组
11.5 nums.forEach(func);
数组每一项均运行函数,但无返回值
12 缩小方法
两个方法均接受两个参数: 调用函数、作为缩小基础的初始值
两个方法区别, reduce() 正序遍历, reduceRight() 逆序遍历
-
reduce(func);
-
reduceRight(func);
func 接收 4 个参数: 前一个值、当前值、项的索引、数组对象 测试似乎用到了前两个参数
1 var sum = nums.reduce(function(prev,cur,index,array){ 2 return prev + cur; 3 });