应用程序 = 程序语句 + 数据结构 + 算法
数据结构: 线形表, 链表, 堆栈 , 队列, 树, 图
01、数组: 线形表
一、数组是做什么?
存储一系列有序数据的集合
var num = 100
100 ,200, 300, 400 一系列
二、数组创建
两种方法
- 构造函数:
new Array() //空数组
var arr1 = new Array()
=>arr1 数组名
引用变量
=> new Array()
创建数组对象
var arr2 = new Array(100,200,300,400)
var arr3 = new Array(5) //只有一个参数是,表示数组存储元素个数
- 字面量
var arr1 = [] //空数组
var arr2 = [100,200,300,400]
0 1 2 3 索引号
三、 访问数组元素
索引号->数组下标
每个数组元素都对应一个索引号,数组元素索引号从0开始,第一个元素索引号是0
通过索引号访问数组中元素
语法:
var arr2 = [100,200,300,400]
arr2[0]
arr2[1]
arr2[0] = 1000 //改变原来的数组!因为栈储存的地址一样
四、数组长度
=>数组存储元素个数
length属性
arr.length
五、访问数组中所有元素
遍历
var arr = [100,200,300,400]
0 1 2 3
arr[0]
for(var i = 0; i< arr.length; i++){
arr[i]
}
六、数据类型
var arr = [100,200,300,400]
arr => Array 数组类型 -> 复杂数据类型
数据类型:
基本数据类型
number string boolean undefind null
复杂数据类型-对象类型-引用类型
数组-> Array
new Array()
Object
02、数组常用方法 var arr = []
语法
数组名.方法()
-1 数组添加元素(数组末尾添加元素)
push()
arr.push(98) // [98]
arr.push(87) // [98,87]
//如果只是想看看数组内容
console.log(arr)
-2 数组最前面插元素
unshift()
-3 删除末尾元素
pop()
-4 删除第一位元素
shift()
-5 删除数组任意元素
截取元素,按索引号
splice(索引号,截取元素个数)
-6 反转数组
reverse()
-7 数组排序 sort()
默认由小到大排序
排序: 按字典顺序 第一位比较排序,then第二位进行比较
98 89 783
783 89 98
改变默认排序:
方法1:函数
function changeSort(a,b){
return a - b; //即数字由小到大排序
return b - a; //即数字由大到小排序
}
使用函数:arr.sort(changeSort)
方法2: 匿名函数
arr.sort(function(a,b){
return b - a
})
-8 数组拼接
var arr1 = [1,2,3]
var arr2 = [4,5,6]
arr1.concat(arr2)
=>返回一个拼接之后的新数组 [1,2,3,4,5,6] !!!未改变原数组哦!!!
-9 返回数组元素索引号
indexOf(元素)
面试题! 03.数组内存结构 + 案例
变量内存结构
内存: 运行的程序加载到内存中执行
储存在栈区:基本数据类型变量 | !!!引用的变量(var 变量名 = 赋值/表达式)
储存在堆区:复杂数据类型对像 数组
应用