第六天

50 阅读3分钟

数组:

数组是一系列有序数组的集和,数组就是一个[],在[]里面存储各种各样的数据,按照顺序依次排好

数组的创建:

字面量创建:
语法:
var 变量 = []

内置构造函数创建数组:
语法:
var  变量 = new  Array( )
注意:当括号里面只有一个数字时表示数组的长度
如: var arry  =  new  Array5// 表示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