js-day06数组
应用程序 = 程序语句 + 数据结构 + 算法
数据结构: 线形表, 链表, 堆栈 , 队列, 树, 图
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 变量名 = 赋值/表达式) 储存在堆区:复杂数据类型对像 数组 应用