首页 > 代码库 > js数组
js数组
<script>var arr=[1,2,‘a‘];arr.length=5;p(arr[3]); //undefinedarr.length=1;p(arr[1]); //undefined</script>
数组的枚举
数组长度上限2的32次方
<script>var arr=[‘f‘,1,2,‘a‘,‘b‘,‘c‘];for(var k in arr){ p(arr[k]);}//for in有时无法保证枚举顺序for(var i=0;i<arr.length;i++){ p(arr[i]);}/*f12abc*///v 数组的值,key下标,ar数组对象arr.forEach(function(v,key,ar){ ar[key]=v+"_";})p(arr);//f_,1_,2_,a_,b_,c_p(Object.keys(arr)); //0,1,2,3,4,5p(Object.getOwnPropertyNames(arr));//0,1,2,3,4,5,lengthp(arr.__proto__==Array.prototype); //truep(Object.getOwnPropertyNames(Array));// length,name,arguments,caller,prototype,isArray,observe,unobserve</script>
Array类的属性
p( Array.isArray(arr)) //true or false
<script>var arr=[‘f‘,1,2,‘a‘,‘b‘,‘c‘];p( arr.constructor);//function Array() { [native code] }p(Array.constructor);//function Function() { [native code] }p(Array.prototype.constructor);//function Array() { [native code] }p(arr.constructor==Array.prototype.constructor);//truevar arr=[‘f‘,1,2,‘a‘,‘b‘,‘c‘];var a=‘w‘;var arr1=[‘q‘,‘w1‘];var b=arr.concat(a,arr1);p(b);//f,1,2,a,b,c,w,q,w1var c=‘a‘.concat(‘b‘);p(c);//ab</script>
Array.prototype对象的属性
every
<script>var arr=[‘f1‘,1,2,‘a‘,‘b‘,‘c‘];function callback(element,index,arrobj){ return arrobj[index]=element+‘_‘; //此函数必须return true默认return false,到return false就停止执行}arr.every(callback); //truep(arr);//f1_,1_,2_,a_,b_,c_</script>
filter
<script>var arr=[‘f1‘,1,2,‘a‘,‘b‘,‘c‘];function callback(element,index,arrobj){ if(!isNaN(element)) return true;}var arr1=arr.filter(callback); //truep(arr1);//1,2</script>
indexOf()
<script>var arr=[‘f1‘,1,2,‘a‘,‘b‘,‘c‘,‘a‘];var r=arr.indexOf(‘a‘,3); //3 第二个参数不传的话默认从开始查找var r1=arr.indexOf(‘a‘,4);//6p(r,r1);//3,6p(‘abc‘.indexOf(‘c‘));//2</script>
join
<script>var arr=[‘f1‘,1,2,‘a‘,‘b‘,‘c‘,‘a‘];var str=arr.join(‘-‘);p(str);//f1-1-2-a-b-c-a</script>
lastIndexOf()
<script>var arr=[‘f1‘,1,2,‘a‘,‘b‘,‘c‘,‘a‘,‘d‘];var r=arr.lastIndexOf(‘a‘,7);var r2=arr.lastIndexOf(‘a‘,3);p(r,r2);//6,3 找不到就返回-1</script>
map()
<script>var arr=[‘f1‘,1,2,‘a‘,‘b‘,‘c‘,‘a‘,‘d‘];function callback(element,index,obj){ obj[index]=element+"__"; return element+"_";}var arr1=arr.map(callback);p(arr1);//f1_,1_,2_,a_,b_,c_,a_,d_p(arr);//f1__,1__,2__,a__,b__,c__,a__,d__</script>
pop()
<script>var arr=[‘f1‘,1,2,‘a‘,‘b‘,‘c‘,‘a‘,‘d‘];var arr1=arr.pop();//dp(arr,arr1);//f1,1,2,a,b,c,a d</script>
reduce(callbackfn[,initialValue);
callbackfn函数对数组计算,返回最后一次计算结果
callbackfn(x,y)
如果在调用reduce时有初始值,那么x就做为初始值
y依次为数组元素
如果没有初始值
数组第一个元素作为初始值,y为从第二个元素开始的数组元素
<script>var arr1=[5,2,3,4,‘a‘];function callback(x,element){ p(x+":"+element); return x+"_"+element;}var r=arr1.reduce(callback);p("<hr>");p(r);/*没初始值得结果5:25_2:35_2_3:45_2_3_4:a------------------------5_2_3_4_a有初始值得结果 r=arr1.reduce(callback,‘init‘);init:5init_5:2init_5_2:3init_5_2_3:4init_5_2_3_4:a-----------------------------------init_5_2_3_4_a*/</script>
reduceRight(callbackfn,[,initval])
从数组的末尾向前执行reduce操作
reverse数组转置
<script>var arr=[‘f1‘,1,2,‘a‘,‘b‘,‘c‘,‘a‘,‘d‘];arr.reverse();p(arr);//d,a,c,b,a,2,1,f1</script>
shift删除数组的第一个元素,并返回该元素
<script>var arr=[‘f1‘,1,2,‘a‘,‘b‘,‘c‘,‘a‘,‘d‘];p(arr.shift());p(arr);</script>
unshift(item0,item1)
添加元素导数组开头,返回添加后数组的长度
<script>var arr=[‘f1‘,1,2,‘a‘,‘b‘,‘c‘,‘a‘,‘d‘];p(arr.unshift(‘first‘,‘second‘));//10p(arr);//first,second,f1,1,2,a,b,c,a,d</script>
slice(start,end)生成一个下标从start到end的新数组
<script>var arr=[‘f1‘,1,2,‘a‘,‘b‘,‘c‘,‘a‘,‘d‘];p(arr.slice(1,4));//1,2,ap(arr);//f1,1,2,a,b,c,a,d</script>
splice(start,delcount,[item0,item1,...])
删除下标由start开始的delcount个元素,如果指定第三个参数,则将该参数插入到start的位置
返回删除的元素
<script>var arr=[‘f1‘,1,2,‘a‘,‘b‘,‘c‘,‘a‘,‘d‘];p(arr.splice(1,2));//1,2p(arr);//f1,a,b,c,a,dvar arr=[‘f1‘,1,2,‘a‘,‘b‘,‘c‘,‘a‘,‘d‘];p(arr.splice(1,2,‘new‘,‘nn‘));//1,2p(arr);//f1,new,nn,a,b,c,a,d</script>
some(callbackfn[,thisarg]) 以此对数组中的元素应用callbackfn,如果callbackfn返回true则终止
callbackfn(数组元素,下标,数组对象)
<script>var arr=[‘f1‘,1,2,‘a‘,‘b‘,‘c‘,‘a‘,‘d‘];function callbackfn(element,index,arrobj){ p(element+":"+index+":"+typeof arrobj);}arr.some(callbackfn);</script>
toLocaleString();//将数组转换为与地区相关的字符串类型
toString转换为字符串
<script>ar arr=[‘f1‘,1,2,‘a‘,‘b‘,‘c‘,‘a‘,‘d‘];var r=arr.toLocaleString();var r1=arr.toString();p(r,r1);p(typeof r,typeof r1);</script>
toSource();
js数组