数组
1. 概念 : 什么是数组?
数据的有序集合,可以用来存储多个数据
2.创建的两种方式
2.1.构造函数方式:var arr = new Array()
var arr = new Array(); //创建了一个空的数组
console.log(arr); // [ ]
2.字面量--------------常用
//1.使用数组字面量方式创建空的数组
var 数组名= [ ] ;
//2. 使用数组字面量方式创建带初始值的数组
var 数组名= ['小白', '小黑','大黄'];
//3.数组中的成员(元素)可以是任意的数据类型 列如字符串, 数字, 布尔值
var arr = [1,'string',true,undefined,null,[],{},function( ){ }]
3. 获取数组中的元素
3.1 数组的索引号 (下标)
3.2获取数组元素
var arr = ['胖虎','静香','大雄']
console.log(arr[2]) //'大雄'
提示:如果没有这个数组元素,输出的结果是 undefined
3.3数组的长度
数组名.length
4.遍历数组
var arr = ['胖虎','静香','大雄']
for(var i=0; i< arr.length; i++){
console.log(arr[i])
}// 扩展
arr.forEach(function(value,index){
console.log(value,index);
})
案例
//1.求数组中的最大值
var arr = [1,2,3,9,5,7]
var max = arr[0];//因为max=arr[0],已经取走了索引号0,所以i从索引号1开始循环
for(var i=1; i<arr.length; i++){
if(arr[i] > max){
max = arr[i]
}
}
console.log(max)思路:
//数组中存放10个整数(1~10)
var arr = [ ]
for(var i = 1; i <= 10; i++){
arr[i-1] = i
}
console.log(arr)//数组筛选 将大于5的值筛选出来
//方案1
var arr = [1,2,5,3,4,6,9]
var newArr = []
var j = 0 //j的作用相当于一个计数器
for(var i = 0; i<arr.length; i++){
if(arr[i] >= 5){
newArr[j] = arr[i]
j++
}
}
console.log(newArr)//方案2
var arr = [1,2,5,3,4,6,9]
var newArr = []
//利用了newArr.length的长度是动态的特性
for(var i = 0; i<arr.length; i++){
if(arr[i] >= 5){
newArr[newArr.length] = arr[i]
}
}
console.log(newArr)// 求数组中出现次数最多的元素及它的次数
var arr = [1,2,3,'a',"b",2,"c","a","d","a"]
//数组的反转
//方案1
var arr = ['胖虎','静香','大雄','小夫']
var newArr = [];
for (var i = 0; i < arr.length; i++) {
newArr[arr.length - i - 1] = arr[i]
}
console.log(newArr);//方案2
var arr = ['胖虎','静香','大雄','小夫']
var newArr = [];
for (var i = arr.length - 1; i >= 0; i--) {
newArr[newArr.length] = arr[i]
}
console.log(newArr);
//数组的冒泡排序从小到大
var arr = [9, 2, 17, 8, 5, 3] // =>[2,3,5,8,9,17]for (var j = 0; j < arr.length - 1; j++) { //外层控制是趟数 行
for (var i = 0; i < arr.length - 1-j; i++) {
if (arr[i] > arr[i + 1]) {
var temp = arr[i]
arr[i] = arr[i + 1]
arr[i + 1] = temp
}
}
}思路"把数组里面的数据进行1排序从小到大或者从大到小,进行排序
一次比较两个元素,如果他们的顺序错误就把他们交换过来,经过多次交换达到顺序
第一步;外层for循环管的的是趟数,有五个数据但是只用走四趟,所以i<=arr.length-1;这样就达到了四趟的要求
第二部; 里层fou循环管的事次数,里面有五个数据,同样的要走四次,所以j<=arr.length-i-1就相当于:5-0-1=4; 5 是 五个数据 ,0是从索引号相当于i,代表第一个数据 -1是代表减去自身所在的位置 ,5-0-1=4.所以这就是交换的次数
第三部 ;内部交换两个变量的值.前一个和后面一个数组元素进行比较,所以 arr[j]是第一个数据索引号为0 ,arr[j+1]是第一个数据加一,那就是第二个索引号,两个进行比较,大于就进行交换,
第四步交换:声明一个空的变量,将第一个数据交给新的变量,然后再把第二个交给第一个,再把新的变量交给第二个数据,这样就达到了交换的结果了
数组中 数组翻转 和 冒泡排序比较重要,重要的是理解其中循环交替的算法,