/*
数组:一个变量来存储一系列的值。
定义语法:
- 常规方式
- 简洁方式
- 最简洁方式
*/
var names = new Array();
names[0] = '张三';
names[1] = '李四';
names[2] = '王五';
var names = new Array('张三','李四','王五');
var names = ['张三','李四','王五','刘7'];
索引:用下标去访问
document.write(names[2]);
更新:把某个位置的元素的值更改
names[2] = '王六';
document.write(names[2]);
整体输出
document.write(names);
遍历:从头到位一个个的使用
for ( var i = 0; i < names.length; i++){
// document.write(names[i] + "<br/>");
//把names数组里的所有元素更新为 xiaoming
names[i] = 'xiaoming';
}
document.write(names);
添加元素
names[4] = 'xiaoming';
document.write(names);
删除:删除最后一个 pop()
document.write(names.length + "<br/>");
document.write(names + "<br/>");
names.pop();
names.pop();
document.write(names.length + "<br/>");
document.write(names + "<br/>");
通过值获取到下标
var i = names.indexOf('王五');
document.write(i);
var numbers = [11,22,33,777,44,55,66];
1、用三种方式定义一个数组,赋值为:11,22,33,777,44,55,66,
并利用循环输出显示数组里的所有值(实现数组的遍历)。
2、基于上题,求出所有数组的元素之和。
var numbers = [11,22,33,777,44,55,66];
var sum = 0;
for (var i = 0; i < numbers.length; i++){
// sum = sum + i;
sum = sum + numbers[i];
}
document.write(sum);
// 3、基于上题,实现数组的倒序输出。
var numbers = [11,22,33,777,44,55,66];
for ( var i = numbers.length - 1; i >= 0; i--){
document.write(numbers[i] + "<br/>");
}
// 4、获取数组中的最大值(或最小值),并输出显示。
var numbers = [11,22,343,33,777,44,7,55,66];
//擂主。
var max = numbers[0];
for ( var i = 1; i < numbers.length; i++){
//循环打擂台
if ( max < numbers[i]){
max = numbers[i];
}
// document.write("max:" + max + ", numbers[" + i + "]:" + numbers[i] +"<br/>");
}
document.write(max);
//删除某个位置开始的几个元素
var numbers = [11,22,343,33,777,44,7,55,66];
numbers.pop();
numbers.splice(2,4);
document.write(numbers);
连接
var numbers01 = [1,2,3];
var numbers02 = [10,20,30];
var numbers = numbers01.concat(numbers02);
document.write(numbers + "<br/>");
document.write(numbers.length);
1、不借助于其他数组,将数组倒序存放,例如:
原始: 11,22,33,777,44,55,66
结果: 66,55,44,777,33,22,11
交换算法:利用一个中间变量
var a = 10;
var b = 20;
var temp = 0;
temp = a; // temp 10 a 10 b 20
a = b; // temp 10 a 20 b 20
b = temp; //temp 10 a 20 b 10
var myArray = [11,22,33,777,44,55,66,6];
//for循环交换,次数是一半
for (var i = 0; i < myArray.length/2; i++){
//交换 myArray[i] myArray[myArray.length - 1 -i]
var temp = myArray[i];
myArray[i] = myArray[myArray.length - 1 -i];
myArray[myArray.length - 1 -i] = temp;
}
document.write(myArray);
/*
1:i 0 交换双方: myArray[0] myArray[6]
2:i 1 交换双方: myArray[1] myArray[5]
3:i 2 交换双方: myArray[2] myArray[4]
4:i 3 交换双方: myArray[3] myArray[3]
*/
2、数组为var arr=[‘蜗牛’,’百度’,’谷歌’,’腾讯’];删除数组中的第二个元素,
不要用现成的splice(1,1)。
var arr=['蜗牛','百度','谷歌','腾讯'];
//表示要删除的元素的下标
var index = 0;
for ( var i = index; i < arr.length - 1; i++){
//把后一个元素赋给前一个元素。
arr[i] = arr[i+1];
document.write(arr + "<br/>");
}
arr.pop();
document.write("最终结果:" + arr + "<br/>");
3、对数字数组进行升序排序算法。
var myArr = [120,34,55,90,31,4,200,44];
var myArr = [120,34,55,90,31,4,200,44];
//排序算法很多种:冒泡排序 - 两两比较,进行交换
for ( var i = 0; i < myArr.length -1; i++){
for ( var j = 0; j < myArr.length - 1 - i; j++){
//两两比较,交换
if ( myArr[j] > myArr[j+1]){
//交换
var temp = myArr[j];
myArr[j] = myArr[j+1];
myArr[j+1] = temp;
}
// document.write("第<" + (j+1) + ">次:" + myArr + "<br/>");
}
}
document.write(myArr + "<br/>");
实现了将最大的顶到了最后一个位置