数组对象
数组创建
var arr = new Array(); //空数组
var arr = new Array(number); //长度为number的空数组
var arr = new Array(val1,val2,val3);
var arr = []; //空数组
var arr = [val1,val2,xal3];
API
arr.length;//返回长度
添加元素:
arr.push(val1,val2);//返回新数组长度,从末尾添加
arr.unshift(val1,val2);//返回新数组长度,从开头添加
arr.splice(index,number,val1,val2);//从index位开始,删除number个元素,并在该位子上添加值。
删除元素:
arr.pop();//从末尾删除一个元素,返回删除元素
arr.shift();//从开头删除一个元素,返回删除元素
arr.splice(index, howmany);//从index处,删除howmany个元素,返回新数组,数组内是删除的元素。
排序:
arr.reverse() //反转,逆序
arr.sort(sortby) //排序,默认按照数组中每个元素的字符串unicode编码顺序排序(字典顺序),如果需要按照指定方式排序,则需要提供一个排序函数sortby参数
arr.sort(function(a,b)
{
return a-b;//降序
return b-a;//升序
return Math.random()-0.5;//乱序
})
截取:
arr.slice(start, end) // 从 start 开始截取到 end 结束,包括开始索引处元素,不包括结束索引处的元素,返回截取后的数组,原数组本身不受影响,可以为负值,表示从倒数第几个开始。
连接:
arr.concat()// 连接数组,返回连接后的新数组,原数组本身不受影响
arr.join(sep)//连接数组中的每个元素,默认以,(逗号)分隔,返回连接后的字符串
常用的字符串链接是用+链接
转换为字符串:
arr.toString()//默认与未传递参数的 join() 方法一致,用","连接。
ES5新增的API
遍历迭代:
arr.forEach(callback)//遍历迭代数组中的每个元素,在迭代到每个元素时,都去调用 callback 函数执行。
callback 是一个函数,该函数结构:
function(currentValue, index, array) {}
-- currentValue 是当前遍历到的元素值
-- index 是当前遍历到元素在数组中的下标
-- array 是调用 forEach() 方法的数组对象
arr.map(callback)//返回一个新数组,该新数组中的元素值是 callback 函数的返回值。
arr.some(callback)//测试数组中是否有某元素通过 callback 函数测试。如果 callback 函数返回值为 true 则表示通过测试
arr.every(callback)//测试数组中是否每个元素都通过 callback 函数测试。
arr.filter(callback)//返回一个新数组,该新数组中的元素是通过 callback 测试的元素
查找:
arr.indexOf(val,index)//查找val值在数组 arr 中第一次出现的下标,如果存在则返回大于等于0的值,如果不存在,则固定返回 -1。也可以指明从指定的索引 index 处开始查找,如果未指定 index 则默认从下标0位置开始查找。
arr.lastIndexOf()//查找val值在数组 arr 中最后一次出现的下标。
归并:
arr.reduce(callback[, initValue])//累加、累乘,callback 是遍历迭代数组元素实现累加操作时调用的函数,该函数有四个参数:sum、currentValue、index、array
arr.reduceRight()//从数组的末尾向前将数组中的数组项做累加.