07认识JS数组

82 阅读2分钟

1.数组的概念

数组是存放一些数据的集合,数组是一种数据类型,他也是属于引用数据类型(复杂数据类型)

2.创建数组的方式

2.1字面量的方式

语法:var arr = [1,2,3,'q','w','e']

var arr = [1,2,3,'q','w','e']
console.log(arr)

2.2内置构造函数的方式

语法1:var arr = new Array() 创建一个空数组

var arr1 = new Array()
console.log(arr1)

语法2:var arr = new Array(5) 创建一个有长度的数组

var arr2 = new Array(5)
console.log(arr2)

语法3:var arr = new Array(1,2,3) 创建一个有内容的数组

var arr3 = new Array(1,2,3,'q','w','e')
console.log(arr3)

3.数组的length属性

语法: 数组名.length

var arr1 = [1,2,3,4,5]
var arr2 = ['q','w','e','r']
console.log(arr1.length) //5
console.log(arr2.length) //4

4.数组的索引

索引 也叫做下标,就是指一个数据,在这个数组内排列在第几个位置上;

 注意:在JS中,索引(下标)是从0开始计数的
 
 语法:数组名[下标]
 

var arr = ['a','b','c',1,2,3]
console.log(arr[0]) //b

5.遍历数组

想办法拿到数组的每一个成员;

想拿到数组的所有成员,需要先想办法拿到数组的所有下标

for(var i = 0;i < arr.length; i++){
  console.log(arr[i])
}

6.数组基本操作案例

6.1冒泡排序

其实就是通过一种算法,将一个乱序的数组,调整为指定顺序的数组(从大到小/从小到大)

冒泡排序的核心:对比数组前一项和后一项,如果前一项的值比较大,那么就往后挪(这个排序之后是按照从小到大的顺序)

var arr = [9, 3, 6, 2, 4, 1, 8, 5, 7]
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
    }
  }
}
console.log('冒泡排序后的数组:',arr) //

6.2选择排序

是先假设一个最小值,然后用这个最小值依次与数组其他数值进行比较,找到比假设的值更小的值的话,就把它们两个交换

var arr = [9, 3, 6, 2, 4, 1, 8, 5, 7]
for(var j = 0; j < arr.length; j++){
  var minIndex = j//假设当前最小值的下标为j
  for(var i = j + 1; i < arr.length; i++){
    if(arr[minIndex] > arr[i]){//如果当前分支执行,说明在数组中找到了一个比假设的最小值要小的元素
    minIndex = i
    }
  }
  //for循环执行完毕后,minIndex记录的就是真实的最小值的下标,此时交换真实的最小值与假设的最小值
  var temp = arr[j]
  arr[j] = arr[minIndex]
  arr[minIndex] = temp
}
console.log('选择排序后的数组:',arr)