数组:
数组是一系列有序数组的集和,数组就是一个[],在[]里面存储各种各样的数据,按照顺序依次排好
数组的创建:
字面量创建:
语法:
var 变量 = []
内置构造函数创建数组:
语法:
var 变量 = new Array( )
注意:当括号里面只有一个数字时表示数组的长度
如: var arry = new Array(5)// 表示arry数组的长度(length)为5
length :表示长度,数组里面有多少个元素
索引:也称下标,是指一个数据在数组里面排在第几个的位置
注意:在所有语言里面,索引都时从0开始
如:var arry = [4,5,6]
arry[0] //输出的是4
存储空间分为两种在 栈 和 堆
栈:主要存储基本数据类型的内容
堆:主要存储复杂数据类型的内容
数据类型之间的比较
基本数据类型是 值 之间的比较
复杂数据类型是 地址 之间的比较
数组常用方法
// 字面量创建数组,一个空数组
let arr1=[4,7]
// 删除数组元素,使用关键字delete ,下标依然存在
// delete arr1[0]
// 内置构造函数创建数组
let arr=new Array(10,13,161,'X')
// 数组的长度
document.write(arr.length)
document.write('<br>') //换行
// 数组索引号从0开始计数,通过数组的索引号获取数组的某一个元素
document.write(arr[3])
document.write('<br>') //换行
/*数组常用的方法*/
//1. push():用来给数组的末尾增加一个元素
arr.push('在数组的末尾增加的元素')
document.write(arr)
document.write('<br>') //换行
//2. pop():用来删除数组的最后的一个元素
arr.pop()
document.write(arr)
document.write('<br>') //换行
//3. unshift():在数组的最前面增加一个元素
arr.unshift('在数组的最前面添加的元素')
document.write(arr)
document.write('<br>') //换行
//4.shift():用来删除数组的最前面的一个元素
arr.shift()
document.write(arr)
document.write('<br>') //换行
/*
5. splice():按照数组的索引号截取数组里的元素,
语法:splice(从索引号的第几个开始 ,删除多少个 ,插入的新元素)
注意:第三个参数如无需要可以不写,也可以写多个
*/
arr.splice(1,2,'替换的元素')
document.write(arr)
document.write('<br>') //换行
//6. reverse():用来反转数组
arr.reverse()
document.write(arr)
document.write('<br>') //换行
//7. sort():用来给数组排序 默认Unicode编码排序
let a = arr.sort(function(a,b){ //a-b为正数交换位置(从小到大排)
return a - b // b-a为正数交换位置(从大到小排)
})
document.write(a)
document.write('<br>') //换行
默认按字符unicode编码排序
//8. concat():把数组进行拼接,返回一个新的数组 多个数组用逗号链接(数组1,数组2)
let arr2 =arr.concat(arr1)
document.write(arr2)
document.write('<br>') //换行
//9. join():把数组的每一项链接起来,变成一个字符串,用什么把内容链接起来在()里定义
let str = arr2.join('--')
document.write(str)
document.write('<br>') //换行
//10. slice:与splice相似,只是用于截取返回新数组
let st = arr.slice(1,2)
document.write(st)
document.write('<br>') //换行
ES5常用遍历数组的方法
let arry =[4,6,7,8]
//1. forEach:跟for循环一个作用,遍历数组
语法:数组名:forEach(function(item,index,数组名){
//要执行的代码
})
//item:表示数组中的每一项
//index:表示数组的索引号
//数组名:表示原数组
//数组有多长就遍历多少回
arry.forEach(function(item,index,arry){
console.log('数组第',index,'项的值是',item,'原数组是',arry);
})
//2. map:和forEach一样遍历数组并且还可以对数组的每一项进行操作,返回一个新数组,不会改变原数组
let arry1=arry.map(function(item,index,arry){
return item*2
})
console.log(arry1);
//3. filter:map的使用方法类似,把所有满足条件的元素返回给新数组
let arry2 = arry1.filter(function(item,index){
return item >10
})
console.log(arry2);
//4. find:和filter类似,只是只返回第一个满足条件的元素
let arry3 = arry2.find(function(item,index){
return item >10
})
console.log(arry3)
//4.:every:和find类似,只有数组中的元素全部满足条件才返回true
//5. some:和every类似,只要数组中有一个满足条件的元素就返回true