数组
06:数组
一、数组的概念和特点
- 数组是对象的一种,数组内的数据会按照顺序进行排列,是一种有序集合
- 数据按照顺序被标记,序号,也叫索引,从0开始
arr[0]
- 数组拥有length属性,用来表示自身有多少个数据
arr.length
- 因为索引的规律为从0开始递增,通过length属性标记数据总数,所以可以通过循环语句遍历数组
- 数据按照顺序被标记,序号,也叫索引,从0开始
1 | for(var i=0; i<arr.length; i++){ |
二、数组的创建
- 字面量:
var arr1 = [数据1, 数据2, 数据3, ...];
- 创建函数:
var arr2 = new Array(数据1, 数据2, 数据3, ...);
- 区别:当有且只有一个数值型数据时,字面量创建就是作为一个数据,构造函数创建会作为数组的长度,每个位置为
undefined
三、数组的操作
- 索引+长度操作
- 原生操作,底层操作,所有数组操作功能的基础
- 查:
arr[索引]
- 改:
arr[索引] = "新值"
- 增:默认只能在数组的最后增加
- 需要配合数组数据位置的移动,完成所需的指定位置的增加
- 删:默认只能从数组的最后开始删除
- 删除数据的原理:减少长度
- 需要配合数组数据位置的移动,完成所需的指定位置的删除
- 数组长度可修改
- 比原始长度大时,多出来的位置,用
empty
补齐,读取时为undefined
- 原始长度小时,从数组最后开始删除
- 比原始长度大时,多出来的位置,用
- 方法操作:将数组作为对象,其自身的函数,叫数组的方法
arr.push()
:最后一位新增arr.pop()
:删除最后一位arr.shift()
:删除第一位arr.unshift()
:第一位新增arr.reverse()
:翻转数组中的数据arr.join()
:根据指定字符连接数组中所有数据arr.concat()
:合并数组arr.slice()
:截取arr.splice()
:删除并替换arr.sort()
:排序- 推荐阅读:数组方法大全
四、数组排序
- 冒泡排序:依次对数组中相邻数字进行比较(两两比较),大的放后面
1 | var arr = [5,99,2,9,1,5,67,7,10,23]; // 定义一个杂乱的数组 |
- 选择排序:从左向右依次,取数组中的一个数据和后面所有数据做比较,拿到最小的之后,再和当前位置交换
1 | var arr = [5,99,2,9,1,5,67,7,10,23]; // 定义一个杂乱的数组 |
五、ES5新增的数组方法
arr.indexOf()
arr.forEach()
arr.map()
arr.filter()
arr.some()
arr.every()
arr.reduce()
arr.includes()
- 推荐阅读:数组方法大全
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 !
评论