Javascript数组

来源:互联网 发布:软件总体方案设计评审 编辑:程序博客网 时间:2024/05/29 02:45
 数组和声明:

数组的作用:
只要是批量的数据都用数组声明

对象声明:
var p=new Object();
p.name="hhh";
p.age=10;
p.sex="nan";

json
{属性1:值1,属性2:值2,属性3:值3};
例:
var p{name:"zhang",age:10,sex:"nan"};
alter(p.name);
alter(p["name"]);

声明数组:
 

一维数组
var 数组名=[元素1,元素2,元素3]
例:
var name=["zhang","li","wang"];
var tems=["abc",10,12,14,true];

二维数组:
var arrs=[["111","222"],["222","333"],["333","444"]];
alter(arrs[1][1]);

对象声明和数组声明对比:

例1:
function MyArray()
{
this.length=arguments.length;
for(var i=0;i<arguments.length;i++)
this.[i]=arguments[i];
}
this.sort=function(){}排序方法
this.pop=function(){}弹出最后的
this.push=function(){}往里加的方法
var arr=new MyArray("aaa","bbb","ccc");
alter.(arr.length);
arr[1]="xxxx";
alter(arr[1]);

var arry=new Array("qq","as","ss","hi");
alter(arry.length);
arry[1]="dhv";
alter(arry[1]);

例2:
function MyArray(num)
{
this.length=num;
for(i=0;i<this.length;i++)
{
this[i]=' ';
}
}
var arr=new MyArray(10);

var arr=new Array(10);
 
Array属性:
constructor:返回创建此对象的数组函数array
length:返回数组中元素的数目
prototype:向对象添加属性

例:
<script>
function employee(name,job,born)
{
this.name="name";
this.job="job";
thos.born="born";
}
var bill=new employee("aaa","sss","kkk");
employee.prototype.salary=null;
bill.salary=111;
document.write(bill.salary);
</script>

方法:
concat();
连接两个或多个更多数组,返回结果

例:
<script>
var a=[1,2,3];
documnet.write(a.concat(4,5));
</script>
结果:1,2,3,4,5

join();
数组所有的元素放在一个字符串,元素通过指定分隔
符进行分割
<script>
var arr=new Array(3);
arr[1]="hh";
arr[2]="jkl";
arr[3]="jsou";
document.write(arr.join("."));
</script>
结果:hh.jkl.jsou

pop();
删除返回数组的最后一个元素

例:
<script>
var arr=new Array(3);
arr[0]="hh";
arr[1]="xhujs";
arr[2]="hduq";
ducument.write(arr+"<br />");
document.write(arr.pop()+"<br />");
document.write(arr);
</script>
结果:
hh,xhujs,hduq
hduq
hh,xhujs

push();
数组的末尾添加一个或更多的元素,返回新的长度

例:
<script>
var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
document.write(arr + "<br />")
document.write(arr.push("James") + "<br />")
document.write(arr)
</script>
结果:
George,John,Thomas
4
George,John,Thomas,James

reverse();
颠倒数组元素中的顺序,不创建新的数组

例:
<script>
var arr=new Array(3);
arr[0]="hjhio";
arr[1]="hisw";
arr[2]="ydw7";
document.write(arr+"<br />");
document.write(arr.reverse());
</script>
结果:
hjhio,hisw,ydw7
ydw7,hisw,hjhio

shift();
删除并返回数组的第一个元素

例:
<script>
var arr=new Array(3);
arr[0]="hh";
arr[1]="xhujs";
arr[2]="hduq";
ducument.write(arr+"<br />");
document.write(arr.shift()+"<br />");
document.write(arr);
</script>
结果:
hh,xhujs,hduq
hh
xhujs,hduq

slice();
某个已有的数组返回选定的元素,如果没有end,从start开始到最后的结束,负数的话,代表最后的结尾

例:
<script>
var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
document.write(arr + "<br />")
document.write(arr.slice(1) + "<br />")
document.write(arr)
</script>
结果:
George,John,Thomas
John,Thomas
George,John,Thomas

<script>
var arr = new Array(6)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
arr[3] = "James"
arr[4] = "Adrew"
arr[5] = "Martin"
document.write(arr + "<br />")
document.write(arr.slice(2,4) + "<br />")
document.write(arr)
</script>
结果:
George,John,Thomas,James,Adrew,Martin
Thomas,James
George,John,Thomas,James,Adrew,Martin

sort();
对数组元素进行排序

例:
<script>
var arr = new Array(6)
arr[0] = "10"
arr[1] = "5"
arr[2] = "40"
arr[3] = "25"
arr[4] = "1000"
arr[5] = "1"
document.write(arr + "<br />")
document.write(arr.sort())
</script>
结果:
10,5,40,25,1000,1
1,10,1000,25,40,5

按照数值大小排序:
<script>
function sortNumber(a,b)
{
return a - b
}
var arr = new Array(6)
arr[0] = "10"
arr[1] = "5"
arr[2] = "40"
arr[3] = "25"
arr[4] = "1000"
arr[5] = "1"
document.write(arr + "<br />")
document.write(arr.sort(sortNumber))
</script>
结果:
10,5,40,25,1000,1
1,5,10,25,40,1000

var arr[1,5,3,4,2,9,8,7];
arr.sort(function(a,b){
if a>b
{return 1;}
if(a==b)
{return 0;}
else
{return -1;}
})
document.write(arr);
结果:9,8,7,5,4,3,2,1(倒叙)

splice();
删除元素,向数组添加新元素,index,howmany,item1,.....,itemX,index选择数组的位置,-1是尾部,howmany,删除数组的个数,0不
删除,item添加的项目

例:
<script>
var arr = new Array(6)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
arr[3] = "James"
arr[4] = "Adrew"
arr[5] = "Martin"
document.write(arr + "<br />")
arr.splice(2,0,"William")
document.write(arr + "<br />")
</script>
结果:
George,John,Thomas,James,Adrew,Martin
George,John,William,Thomas,James,Adrew,Martin

例:
<script>
var arr = new Array(6)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
arr[3] = "James"
arr[4] = "Adrew"
arr[5] = "Martin"
document.write(arr + "<br />")
arr.splice(2,3,"William")
document.write(arr)
</script>
结果:
George,John,Thomas,James,Adrew,Martin
George,John,William,Martin

toSource();
返回该对象的源代码

toLocaleString();
数组转化为本地数组,返回结果

toString();
把数组转化为字符串,返回结果。


unshift();
向数组开头添加一个或更多元素,返回新的长度

例:
<script>
var arr = new Array()
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
document.write(arr + "<br />")
document.write(arr.unshift("William") + "<br />")
document.write(arr)
</script>
结果:
George,John,Thomas
4
William,George,John,Thomas

valueOf();
返回数组对象的原始值


遍历数组:
for(var i=0;i<arr.length;i++)
{
document.write(arr[i]+"<br>");
}

改变背景颜色:
var color=["red","blue","yellow","green","#ff00ff"];
document.bgColor=color[Math.floor(Math.random()*color.length)];

贪吃蛇随机排列:
<script>
var rows=20;//行数
var cols=20;//列数
var w=25;//宽度
var h=25;//高度
var map=new Array();//数组,地图的数组
for(var i=0;i<rows;i++)//遍历循环地图的行
{   
map[i]=new Array();//设置数组,里面元素初始化为0
for(var j=0;j<cols;j++)//遍历循环地图的列
{       
map[i][j]=0;
}
}
map[Math.floor(Math.random()*rows)][Math.floor(Math.random()*cols)]=1;//设置数组等于1,随机数*行数,不超过最大的行数,向小取整
map[Math.floor(Math.random()*rows)][Math.floor(Math.random()*cols)]=2;//设置数组等于2,随机数*行数,不超过最大的行数,向小取整
for(var i=0;i<rows;i++)//行循环
{
for(var j=0;j<cols;j++)//列循环 
{
if(map[i][j]==1)//判断如果地图的数组等于1,背景颜色为就红色
var bg="red";
else if(map[i][j]==2)//判断如果数组等于2,背景色为蓝色
var bg="blue";
else//否则,背景色为黄色
var bg="yellow";
document.write('<div style="position:absolute;top:'+(100+h*i)+'px;left:'+(100+w*j)+'px;width:'+w+'px;height:'+h+'px;overflow:hidden;background:'+bg+';border:1px solid white;"></div>');//网页输出div,样式方块。
}
}
</script>
原创粉丝点击