js里的数组需注意的点
数据存储-----数组
强类型:1.存储同一类型的数据的集合 2.内存中是有一定长度
弱类型:1.存储任意类型的数据 2.内存中没有长度限制
while:先走条件再走循环体
do
{
alert("aaa");
}
while(true)
先走循环体再走条件
定义数组
var attr = Array(); //定义一个空数组
alert(attr);
var attr1 = Array(1,2,3,4,5); //有值的数组
alert(attr1);
var attr2 = [1,2,3,4,5];
var attr3 = [];
数组的取值和赋值
alert(attr2);
alert(attr2[1]);
alert(attr2[2]);
alert(attr2[3]);
alert(attr2[4]);
for(var i=0;i<attr2.length;i++)
{
alert(attr2[i]);
}
二维数组
attr2[
[ 1,2,3,4]
[ 3,4,5,6]
]
取值:alert(attr2[0]),显示的是1,2,3,4; alert(attr2[0][1]),显示的是2。
例题:
1.求 70,89,78,90,96,79,88,100,56,95 总和,最大值,平均值
总和
var attr = [70,89,78,90,96,79,88,100,56,95]; var sum = 0; for(var i=0;i<attr.length;i++) { sum = sum + attr[i]; } alert(sum);
最小值
var min = 70; var attr = [70,89,78,90,96,79,88,100,56,95 ]; for(var i=0;i<attr.length;i++) { if(attr[i]<=min) { min=attr[i]; } } alert(min);
最大值
var maxn = 0; for(var i=0;i<attr.length;i++) { if(attr[i]>maxn) { maxn = attr[i]; } } alert(maxn);
思路:第一个值与第二个值相比较,依次类推。
平均值
var sum = 0; for(var i=0;i<attr.length;i++) { sum = sum + attr[i]; } var pj = sum/attr.length; alert(pj);
思路:先求出和来,再定义一个平均值的变量出来。
2.求3,5,7在数组中出现的次数
1,4,3,5,9,9,3,2,4,6,2,1,3,5,7,9,0,5,3,5,2,1,5,6,7,8,2,4,6,8,0,5
var attr = [1,4,3,5,9,9,3,2,4,6,2,1,3,5,7,9,0,5,3,5,2,1,5,6,7,8,2,4,6,8,0,5,7,4,6,2,6,]; var c3 = 0; var c5 = 0; var c7 = 0; for(var i=0;i<attr.length;i++) { switch(attr[i]) { case 3: c3 = c3+1; break; case 5: c5 = c5+1; break; case 7: c7 = c7+1; break; } } alert(c3); alert(c5); alert(c7);
总结:用到了switch case的知识点,c3代表的是3出现的次数,attr[i]是索引值.
3.查找某个值:1,4,5,3,2,7,6,9
var attr = [1,4,5,3,2,7,3,9]; var a =prompt("请输入你要查的数") for(var i=0;i<attr.length;i++) { if(a==attr[i]) { alert("索引号"+i); break; } }
冒泡排序:按照从小到大的顺序排列9,8,7,6,5,4,3,2,1
9,8,7,6,5,4,3,2,1
8,7,6,5,4,3,2,1,9 n-1 n-1
7,6,5,4,3,2,1,8,9
6,5,4,3,2,1,7,8,9
5,4,3,2,1,6,7,8,9
4,3,2,1,5,6,7,8,9
3,2,1,4,5,6,7,8,9
2,1,3,4,5,6,7,8,9
1,2,3,4,5,6,7,8,9
var attr = [9,8,7,6,5,4,3,2,1]; var zj = 0; for(var i=0;i<attr.length-1;i++) { for(var j=0;j<attr.length-1;j++) { if(attr[j]>attr[j+1]) { zj = attr[j]; attr[j] = attr[j+1] attr[j+1] = zj; } } } alert(attr);
总结:用到了冒泡排序,在这里面当j=0,attr[0]=9;attr[1]=8;zj为一个中间值,i是次数,当attr[j]>attr[j+1]时,提出attr[0]=9,让中间值等于9,8移动到attr[0]的位置,中间值又移动到了attr[1];然后再循环,j=1,attr[1]=7;attr[2]=8;依次类推。
4. 公园里有200个桃子。猴子每天吃掉10个,挑出两个坏的扔掉,问6天后剩余桃子的数量
for(var i=1;i<7;i++) { var sheng=200-i*12; } alert(sheng);
另一种做法:
var sl = 200; for(var i=0;i<6;i++) { sl = sl-10-2; } alert(sl);