目录
Javascript数组
数组的概念:
数组(Array)可以把一组相关的数据一起存放,并提供方便的访问(获取)方式
什么是数组:
数组是指一组数据的集合,其中每个数据被称作元素,在数组中可以存放任意类型的元素。数组是一种将一组数据存储在单个变量名下的优雅方式
//普通变量一次只能存储一个值 let num = 10 //数组一次可以存储多个值 let arr = [1,2,3,4,5,6]
数组的创建方式
JS中创建数组有两种方式:
- 利用 new创建数组
let 数组名 = new Array() let arr = new Array() //创建一个新的空数组
- 利用数组字面量创建数组
// 1、使用数字字面量的方式创建空数组 let 数组名 = [] // 2、使用数组字面量的方式创建带初始值的数组 let 数组名 = ['小白','大白','小黑']
数组元素的类型
数组中可以存放任意类型的数据,例如字符串,数字,布尔值等
let 数组名 = ['小白','大白','小黑' ,1 ,true]
数组的索引
索引(下标):用来访问数组元素的序号(数组下标从0 开始);
数组可以通过索引来访问、设置、修改对应的数组元素。我们可以通过"数组名[索引]"的形式来获取数组中的元素。
//定义数组 let arr = [1,2,3] //获取数组中第二个元素 alert(arr[1])
遍历数组
<script> // 通过for循环遍历数组 let arr = ['red', 'blue', 'green'] for (let i = 0; i < 3; i++) { console.log(arr[i - 1, i]); } </script>
因为我们得数组索引号从0开始,所以i必须从0 开始 i<3
输出得时候arr[i] i计数器当索引号来用
数组的长度
使用"数组名.length"可以访问数组元素的数量(数组长度)
数组的操作(增删改查)
增(数组添加新的数据) arr.push(新增的内容)
arr.unshift(新增的内容)
删(删除数组中的数据) arr.pop()
arr.shift()
arr.splice(操作的下标,删除的个数)
改(重新赋值) 数组名[下标] = 新值 查(查询数组数据) 数组名[下标]
- 数组增加新的方法
数组名.push()方法将一个或多个元素添加到数组的末尾,并返回该数组的新长度
数组名.unshift()方法将一个或多个元素添加到数组的开头,并返回该数组的新长度
语法
arr.push(元素1,....,元素n) arr.unshift(元素1,....,元素n) //例子 let arr = ['red', 'green'] // arr.push 在数组后面新增元素 arr.push('pink', 'blue') // arr.unshift 在数组前面新增元素 arr.unshift('yellow') console.log(arr) // ['yellow','red','green','pink','blue']
- 数组删除元素
数组.pop()方法从数组中删除最后一个元素,并返回该元素的值
数组.shift()方法从数组中删除第一个元素,并返回该元素的值
数组名.splice(下标起始位置,删除几个元素) 下标起始位置从0开始 删除的几个元素可以省略,如果省略则默认从指定的起始位置删除到最后
语法
//语法 arr.pop() //删除最后一个元素 arr.shift() // 删除第一个元素 arr.splice(start,deleteCount) //例子 let arr = ['yellow', 'red', 'green', 'pink', 'blue'] // arr.pop() 删除数组后面的元素 arr.pop() console.log(arr.pop()) // 打印出删除的元素 blue arr.shift() 删除数组前面的元素 // arr.shift() console.log(arr.shift()) // 打印出删除的元素 yellow // arr.splice(从什么位置开始删, 删除几个元素) arr.splice(0, 1) // ['red', 'green', 'pink', 'blue'] arr.splice(1) // ['yellow'] console.log(arr) // ['red','green','pink']
数组排序(冒泡排序)重点
冒泡排序:是一种简单得排序算法。它重复的走访过要排序得数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来,走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小得元素会经由慢慢浮到数列的顶端。(把任意一个元素里的值,从小到大或从大到小的顺序进行排序)
数字:
//冒泡排序 const arr = [2, 4, 5, 6, 1, 3] //外层循环长度减一次 for (let i = 0; i <= arr.length - 1; i++) { //内层循环 最大次数等于外层循环数组长度-1 for (let j = 0; j <= arr.length - i - 1; j++) { // 判断条件 如果数组大于这个数组加一 那么按照顺序替换到指定位置 if (arr[j] > arr[j + 1]) { let temp = arr[j] arr[j] = arr[j + 1] arr[j + 1] = temp } } } console.log(arr);
运行结果:
字符串:
//冒泡排序 const arr = ['qwe', 'qwer', 'qwert', 'qwerty', 'qw', 'q'] //外层循环长度减一次 for (let i = 0; i <= arr.length - 1; i++) { //内层循环 最大次数等于外层循环数组长度-1 for (let j = 0; j <= arr.length - i - 1; j++) { // 判断条件 如果数组大于这个数组加一 那么按照顺序替换到指定位置 if (arr[j] > arr[j + 1]) { let temp = arr[j] arr[j] = arr[j + 1] arr[j + 1] = temp } } } console.log(arr);
运行结果:
混合(字符串+数字)
//冒泡排序 const arr = ['qwe', 'qwer', 'qwert', 3, 1, 2] //外层循环长度减一次 for (let i = 0; i <= arr.length - 1; i++) { //内层循环 最大次数等于外层循环数组长度-1 for (let j = 0; j <= arr.length - i - 1; j++) { // 判断条件 如果数组大于这个数组加一 那么按照顺序替换到指定位置 if (arr[j] > arr[j + 1]) { let temp = arr[j] arr[j] = arr[j + 1] arr[j + 1] = temp } } } console.log(arr);
运行结果: