数组:相同类型数据的集合
强类型语言:
1.数组里面只能存放相同数据类型的数据
2.定义数组的时候需要制定一个长度(可以存放的元素数量)
3.内存空间连续
集合:
1.可以存放任意类型的数据
2.定义的时候不需要制定长度
3.内存空间是不连续的
JS(弱类型语言;没集合概念):
数组:
1.可以存放任意类型数据
2.定义的时候不需要指定长度
定义
给数据:var attr = Array(1,3.14,"aa");
给长度:var attr = Array(5); attr[a]="aa";
使用方括号定义:var attr=[1,3.14,"aa"];
属性
数组长度:length
方法
追加元素:push
遍历
for循环
for( var i=0;i<attr.length;i++)
forteach形式
for(var a in attr) alert(attr[a]);
例子
10个成绩,求总分,求最高分,求最低分
var attr = [89,80,76,49,90,25,85,76,59,40];
var sum = 0;
for(var i=0;i<attr.length;i++)
{
sum += attr[i];
}
var zg = 0;
for(var i=0;i<attr.length;i++)
{
if(attr[i]>zg)
{
zg = attr[i];
}
}
var zd = zg;
for(var i=0;i<attr.length;i++)
{
if(attr[i]<zd)
{
zd = attr[i];
}
}
添加数据时去重
var attr = [2,5,10,16,27];
var sj = 10;
var cf = true;
for(var i=0;i<attr.length;i++)
{
if(sj == attr[i])
{
cf = false;
break;
}
}
if(cf)
{
attr.push(sj);
alert(attr.length);
}
else
{
alert("有重复值");
}
冒泡排序
var attr=[1,8,6,4,5,3,7,2,9]; //数组里面两个相邻的两个元素进行比较,满足条件元素交换
var zj = 0; //定义一个中间变量
for(var i=0;i<attr.length-1;i++) //控制比较的轮数,进行比较的轮数是数组的长度减一
{
for(var j=0;j<attr.length-1-i;j++) //控制每轮比较的次数
{
if(attr[j]<attr[j+1])
{
zj = attr[j];
attr[j] = attr[j+1];
attr[j+1]=zj;
}
}
}
alert(attr[0]);
attr.sort(); //JS按第一位排序,有的准有的不准
二分法查找数据
var attr[1,2,3,4,5,6,7,8,9]; //首先数组需要排好序
var v = 6; //要查找的值
var minsy=0;
var maxsy=attr.length-1;
var midsy;
while(true)
{
var midsy=parseInt((minsy+maxsy)/2);
if(attr[midsy==v])
{
break;
}
if(midsy == minsy)
{
if(attr[midsy+1]==v)
{
midsy=midsy+1;
break;
}
else
{
midsy=-1;
break;
}
}
if(attr[midsy]>v)
{
maxsy=midsy;
}
else
{
minsy=midsy;
}
}
alert(midsy);