js数组对象以及数组常用属性和方法
声明数组的方式
var arr1 = new Array(1, 5, 8, 7, 2, 10); //定义了一个数组,其中具有6个数据
var arr2 = new Array(); //只是单纯地定义了一个数组(名),但没有给值(数据),即现在是空的
var arr3 = [1, 5, 8, 7, 2, 10]; //同arr1,只是一种简写的定义法。
var arr4 = [ ]; //同arr2,也是一个空数组。
var arr5= new Array(5); //4表示数组元素个数和
判断是否为数组:if(arr instanceof Array)
数组遍历—for in循环语句。
for( var i in arr ) { //i为数组键名 console.log('键名' + i + '=' + arr[i]); }
属性:
arr.length: 表示该数组对象的长度
方法:
arr.concat(其他数组): //合并数组,类似php中array_merge
var
s1 = v1.concat( v2 ); //此时s1是这样一个数组: [2, 5, 1, 5, 5,
1, 6, 8];
arr.join(“字符串”): //类似php中implode()
var s2 = v1.join(“//”); //结果s2为字符串 “2//5//1//5”
arr.pop(); //将该数组的最后一项“移除”(删除),并返回该项数据,即该数组少了一项
var s3 = v1.pop(); //结果v1只剩这个:[2,5,1]; s3的值是5
arr.push(新数据项d1); //将新的数据d1添加到该数组的最后位置,即数组多了一项。
var s4 = v1.push( 55 ); //v1此时为:[2,5,1, 55], s4的值为新数组的长度,即4
arr.shift(); //将该数组的第一项“移除”(删除),并返回该项数据,即该数组少了一项
var s5 = v1.shift(); //结果v1只剩这个:[5, 1,55]; s5的值是2
arr.unshift(新数据项d1); //将新的数据d1添加到该数组的最前位置,即数组多了一项。
var v6 = v1.unshift( 66 ); //v1此时为:[66, 5, 1, 55], s6的值为新数组的长度,即4
arr.indexOf('a') //找到第一个值为'a'的键名
arr.lastIndexOf('a') //最后一个值为'a'的键名
数组排序:sort() reverse()
var num = [21,23,52,2,49,30]; var newNum = num.sort(fn); function fn(v1,v2) { return v1-v2; } //如果需要倒序,或者声明fn为return v2-v1 newNum = newNum.reverse()
数组的截取slice() splice()
//slice(start,end) 返回数组一部分(包括开始、不包括结束位置)————不改变原来的数组 //正数左边从0开始 负数右边从-1开始 var fruit = new Array("apple","banana","pear","orange","grape"); var rzt = fruit.slice(1,-2); //["banana","pear"] console.log(rzt); //splice() 截取数组一部分————返回移除的单元,改变原来的数组 //splice(start,长度个数[,el][,el][,el]) 从一个数组移除一个或多个元素 var rzt1 = fruit.splice(1,3); var rzt1 = fruit.splice(1,3,'egg','milk'); console.log(rzt1); console.log(fruit);
高级方法(IE支持不好)
every() 全部符合条件返回真
some() 部分符合条件返回真
filter() 把符合条件的项目组成一个新数组
forEach() 遍历数组
map() 对数组每一项运行指定函数,返回每次函数调用的结果组成的数组
var num = [15,7,9,3,2,6,1,10]; var rzt = num.every(function(item,index,arr){ return item>6; }); alert(rzt);