是一种复杂数据类型,有序的数据集合
数组一般存放多个个例的不同数据,对象一般存放一个个例的不同信息
数组创建
(1)字面量创建
var 数组名=[ ]
(2)内部构造函数创建
var 数组名=new Array()
创建指定长度的数组
var 数组名=new Array(数字)
length属性
访问语法:数组名.length——>返回数组长度
设置语法:数组名.length=数字
(1)数组名.length=数组长度 数组没有变化
var arr=[0,1,2,3,4,5,6] arr.length=7 console.log(arr) //[0,1,2,3,4,5,6]
(2)数组名.length=数据(数据<数组长度) 数组会从末尾开始删除
var arr=[0,1,2,3,4,5,6] arr.length=5 //设置数组长度为5 会从末尾删除多余的 console.log(arr) //[0,1,2,3,4]
(3)数组名.length=数据(数据>数组长度) 多出位置自动用empty补齐
var arr=[0,1,2,3,4,5,6] arr.length=10 //设置的数组长度大于原长度,那么会多出来位置,自动用empty补齐 console.log(arr) //[0, 1, 2, 3, 4, 5, 6, empty × 3]
index属性
索引index:从0开始,依次+1
访问语法:数组名[索引]
索引对应的值存在,那么返回相应的值
若不存在返回undefined
var arr=[0,1,2,3,4,5,6] console.log(arr[1]) //1 console.log(arr[10]) //undefined
设置语法:
var arr=[0,1,2,3,4,5,6]//1.索引小于数组长度 修改值 arr[1]="被修改" console.log(arr) //[0, '被修改', 2, 3, 4, 5, 6]//2.索引等于数组长度 在末尾添加 arr[7]='添加' console.log(arr) //[0, '被修改', 2, 3, 4, 5, 6, '添加']//3.索引大于数组长度 在末尾添加 中间自动用empty补齐 arr[10]='在索引10的位置上添加' console.log(arr) //[0, '被修改', 2, 3, 4, 5, 6, '添加', empty × 2, '在索引10的位置上添加']
数组遍历
使用for循环,开始为0,结束小于数组长度,步长为1
经典题型:
①首先练习两数相换
var a=10 var b='tom' // 要借助第三个数存储 var temp=a a=b b=temp console.log('a的值'+a,'b的值'+b) //a的值tom b的值10
冒泡排序
排序算法1-冒泡排序
思路:两两相比,把大的向后排
——①两两相比
var arr = [30, 22, 19, 13, 35, 8] //循环的初始索引为0,结束索引时length-1,步长为1 for (var j = 0; j < arr.length-1; j++) {console.log(arr[j],arr[j+1]) } /*30 2222 1919 1313 3535 8 */
——②互换位置
for (var j = 0; j < arr.length-1; j++) {//前者比后者大就交换位置if(arr[j]>arr[j+1]){temp=arr[j]arr[j]=arr[j+1]arr[j+1]=temp}}console.log(arr) //[22, 19, 13, 30, 8, 35]
——③ 一共要比较5次,也就是arr.length-1
//完整代码 var arr = [30, 22, 19, 13, 35, 8] var temp for (var i = 0; i < arr.length; i++) {for (var j = 0; j < arr.length-1; j++) {//前者比后者大就交换位置if(arr[j]>arr[j+1]){temp=arr[j]arr[j]=arr[j+1]arr[j+1]=temp}}} console.log(arr) //[8, 13, 19, 22, 30, 35]
选择排序
每一轮标记最小的,把最小的向前排列
秒懂算法4-选择排序
var arr = [30, 22, 19, 13, 35, 8] var min = 0 var temp //第一轮 拿第一个和每一个相比较,如果比第一个小把当前标记为最小 for (var j = 1; j < arr.length ; j++) {console.log(arr[j])if (arr[min] > arr[j]) {min = j}} console.log('最小'+arr[min]) temp=arr[0] arr[0]=arr[min] arr[min]=temp console.log(arr)// 第二轮 min=1 for (var j = 2; j < arr.length ; j++) {if (arr[min] > arr[j]) {min = j} } temp=arr[1] arr[1]=arr[min] arr[min]=temp console.log(arr)
——一共有5轮(比较5次)
var arr = [30, 22, 19, 13, 35, 8] var min var temp for (var i = 0; i < arr.length; i++) {min = ifor (var j = i+1; j < arr.length; j++) {console.log(arr[j])if (arr[min] > arr[j]) {min = j}}temp = arr[i]arr[i] = arr[min]arr[min] = temp }console.log(arr)
上一篇:13.js对象-CSDN博客
下一篇:15.数组的方法(改变原数组和不改变原数组)-CSDN博客