JavaScript第五天
1.1 数组的概念
我们现在用来存储数据的内容是变量。是编程中最小的存储单元,因为一个变量只能存储一个数据,再次赋值的时候 会将以前的数据覆盖。
例如 var a = 10; a = 20 ;
有的时候 我们需要存储多个数据 所以就有了数组的概念。
数组(Array)是有序的元素序列。 若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。用于区分数组的各个元素的数字编号称为下标。数组是在程序设计中,为了处理方便, 把具有相同类型的若干元素按有序的形式组织起来的一种形式。 这些有序排列的同类数据元素的集合称为数组。
数组是用于储存多个相同类型数据的集合。
1.2 数组的声明
<script type="text/javascript">
/* 创建一个空数组 */
var arr1 = new Array();
/* 创建一个数组 初始容量是 5 */
var arr2 = new Array(5);
/* 创建一个数组 初始数据是 5 10 15 20 */
var arr3 = new Array(5,10,15,20);
/* 字面量形式创建数组 */
/* 创建一个空数组 */
var arr4 = [];
/* 创建一个数组 初始值是5 */
var arr5 = [5];
/* */
var arr6 = [5 , 10 , 15 , 20];
</script>
1.3 数组中数据的存取
A 数组中数据的操作都是通过操作下标/索引值完成的。
B 数组会对数组中的容量位置添加一个编号 编号称之为索引值/下标。下标从0开始
C js中数组的容量不够的时候 会自动扩容
var arr = [];
/* 将220 存储到 数组索引为0的位置 */
arr[0] = 220;
arr[1] = 230;
arr[2] = 240;
arr.push(250,123,345,234,123,3265,2354,3456,4567,123);
增 删 改
console.log(arr);
arr.splice(3,0,245); // splice(起始索引,长度,插入的数据)
console.log(arr);
arr.pop(); // 删除最后一个
arr[2] = 440; // 替换指定索引位置的数据
查
var a = arr[0]; // 根据索引值获取数据
var b = arr[0];
// 遍历数组 *****************************
for(var i=0;i<arr.length;i++) {
var c = arr[ i ];
console.log( c );
}
1.4 数据源思想
<button οnclick="haha()">改变颜色</button>
<script type="text/javascript">
var arr = [ "red" , "yellow" ];
var i = 0;
function haha(){
document.body.style.backgroundColor = arr[ i%arr.length ];
i++;
}
</script>
1.5 冒泡排序
算法: 排序算法 搜索算法等等
A 木桶排序
B 冒泡排序
第一轮
<script type="text/javascript">
var arr = [6,5,3,1,8,7,2,4];
/* 1 */
for(var j=0; j<arr.length-1 ; j++ ){
var a = arr[j];
var b = arr[j+1];
if(a>b){
arr[j] = b;
arr[j+1] = a;
}
}
</script>
第1-7轮
<script type="text/javascript">
var arr = [6,5,3,1,8,7,2,4];
/* 1 */
for(var j=0; j<arr.length-1 ; j++ ){
var a = arr[j];
var b = arr[j+1];
if(a>b){
arr[j] = b;
arr[j+1] = a;
}
}
for(var j=0; j<arr.length-2 ; j++ ){
var a = arr[j];
var b = arr[j+1];
if(a>b){
arr[j] = b;
arr[j+1] = a;
}
}
for(var j=0; j<arr.length-3 ; j++ ){
var a = arr[j];
var b = arr[j+1];
if(a>b){
arr[j] = b;
arr[j+1] = a;
}
}
for(var j=0; j<arr.length-4 ; j++ ){
var a = arr[j];
var b = arr[j+1];
if(a>b){
arr[j] = b;
arr[j+1] = a;
}
}
for(var j=0; j<arr.length-5 ; j++ ){
var a = arr[j];
var b = arr[j+1];
if(a>b){
arr[j] = b;
arr[j+1] = a;
}
}
for(var j=0; j<arr.length-6 ; j++ ){
var a = arr[j];
var b = arr[j+1];
if(a>b){
arr[j] = b;
arr[j+1] = a;
}
}
for(var j=0; j<arr.length-7 ; j++ ){
var a = arr[j];
var b = arr[j+1];
if(a>b){
arr[j] = b;
arr[j+1] = a;
}
}
console.log(arr)
</script>
半成品
<script type="text/javascript">
var arr = [6,5,3,1,8,7,2,4];
for(var i=1;i<arr.length;i++){
for(var j=0; j<arr.length-i ; j++ ){
var a = arr[j];
var b = arr[j+1];
if(a>b){
arr[j] = b;
arr[j+1] = a;
}
}
}
console.log(arr)
</script>
成品
<script type="text/javascript">
var arr = [6,5,3,1,8,7,2,4];
var len = arr.length;
for(var i=1;i<len;i++){
for(var j=0; j<len-i ; j++ ){
if(arr[j]>arr[j+1]){
var temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
console.log(arr)
</script>