可通过定义标记变量来区分循环是否正常结束
数组
数组的定义
var ary = new Array();
创建空数组,长度为0
var ary = new Array(3);
创建长度为3的数组
var ary = new Array(10,22,22,2,2,2,2,2);
创建有初始数据的数组
var ary = [];
ary[5] = 1;
定义空数组,直接设置下标为5的元素,动态扩展数组长度,下标5之前的元素都是undefined
数组的赋值和访问
var ary = new Array();
创建空数组
ary[0]=1;
//ary[0]="abc";
为第一个元素赋值1//abc
访问超出数组长度的元素,返回undefined
遍历方式
1,循环遍历
2,for each/in遍历
for(var x in ary){
document.write(x+" "+ary[x]+"<br/>")
}
x为数组下标
数组下标属性
for循环只能遍历索引下标
for each能遍历索引下标和属性下标
查询数组元素
<script>
var ary = new Array(5);
for(var i = 0; i < ary.length; i ++){
ary[i] = prompt("输入第"+(i+1)+"个姓名")
}
for(var i = 0; i < ary.length; i ++){
if(ary[i] == "张三"){
document.write("张三在第"+(i+1)+"位")
}
}
</script>
删除数组元素
<script>
var ary = new Array(1,2,3,4,5,6,7,8,9)
document.write("原数组:"+ary+",原长度"+ary.length+"<br/>")
var index = Number(prompt("要删除第几位?",""))
for(var i = index-1; i < ary.length-1; i ++){
ary[i] = ary[i+1];
}
ary.length = ary.length-1;
document.write("删除第"+index+"位元素后的数组:"+ary+",删除第"+index+"位元素后长度"+ary.length+"<br/>");
</script>
运行结果
插入数组元素
<script>
var ary = new Array(1,2,3,4,5,6,7,8,9)
document.write("原数组:"+ary+",原长度"+ary.length+"<br/>")
var index = Number(prompt("要在第几位插入元素?",""))
var num = prompt("插入的元素","")
for(var i = ary.length; i > index-1; i --){
ary[i] = ary[i-1]
}
ary[index-1] = num;
document.write("在第"+index+"位插入元素"+num+"后的数组:"+ary+",插入后长度"+ary.length+"<br/>");
</script>
运行结果
冒泡排序
第一个元素依次与后边的元素进行比较,若大于后边的元素,则进行换位,直到完成排序。
<script>
var ary = new Array(4,5,8,8,3,2,8,0,93,2,354,126,327,212,4343,787,2,578,64322,12,68,89)
var num = 0;
document.write("原数组:"+ary+"<br/>")
for(var i = 0; i <= ary.length-1; i ++){
for(var j = 0; j <= ary.length-1-i; j ++){
if(ary[j] > ary[j+1]){
num = ary[j];
ary[j] = ary[j+1];
ary[j+1] = num;
}
}
}
document.write("冒泡排序后数组:"+ary)
</script>
运行结果