码迷,mamicode.com
首页 > 编程语言 > 详细

js数组

时间:2015-01-20 22:02:02      阅读:341      评论:0      收藏:0      [点我收藏+]

标签:

<script>
var arr=[1,2,a];
arr.length=5;
p(arr[3]); //undefined
arr.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]);
}
/*
f
1
2
a
b
c
*/
//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,5
p(Object.getOwnPropertyNames(arr));//0,1,2,3,4,5,length
p(arr.__proto__==Array.prototype); //true
p(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);//true

var 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,w1
var 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);  //true
p(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);  //true
p(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);//6
p(r,r1);//3,6
p(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();//d
p(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:2
5_2:3
5_2_3:4
5_2_3_4:a
------------------------
5_2_3_4_a
有初始值得结果   r=arr1.reduce(callback,‘init‘);
init:5
init_5:2
init_5_2:3
init_5_2_3:4
init_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));//10
p(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,a
p(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,2
p(arr);//f1,a,b,c,a,d

var arr=[f1,1,2,a,b,c,a,d];
p(arr.splice(1,2,new,nn));//1,2
p(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数组

标签:

原文地址:http://www.cnblogs.com/HKUI/p/4237269.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!