是一种复杂数据类型,有序的数据集合
数组一般存放多个个例的不同数据,对象一般存放一个个例的不同信息
数组创建
(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 22 22 19 19 13 13 35 35 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 = i for (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博客