数组讲解一

阅读: 评论:0

数组讲解一

数组讲解一

数组

  • 数组也是数据类型中的一种

创建一个数组

  • 数组就是一个 []

  • [] 里面存储着各种各样的数据,按照顺序依次排好

字面量创建一个数组

  • 直接使用 [] 的方式创建一个数组

    // 创建一个空数组
    var arr1 = []
    // 创建一个有内容的数组
    var arr2 = [1, 2, 3]

内置构造函数创建数组

  • 使用 js 的内置构造函数 Array 创建一个数组

    // 创建一个空数组
    var arr1 = new Array()
    // 创建一个长度为 10 的数组
    var arr2 = new Array(10)
    // 创建一个有内容的数组
    var arr3 = new Array(1, 2, 3) //数组内部之间 用, 隔开

数组的 length

  • length: 长度的意思

  • length 就是表示数组的长度,数组里面有多少个成员,length 就是多少

    // 创建一个数组
    var arr = [1, 2, 3]
    ​
    console.log(arr.length) // 3

数组的索引

  • 索引,也叫做下标,是指一个数据在数组里面排在第几个的位置

  • 注意: 在所有的语言里面,索引都是从 0 开始的

  • 在 js 里面也一样,数组的索引从 0 开始

    // 创建一个数组
    var arr = ['hello', 'world']
  • 上面这个数组中,第 0 个 数据就是字符串 hello第 1 个 数据就是字符串 world

  • 想获取数组中的第几个就使用 数组[索引] 来获取

    var arr = ['hello', 'world']
    ​
    console.log(arr[0]) // hello
    console.log(arr[1]) // world
    //生成一个数组
    <script>var num=new Array(30)//一个空数组 长度30for(var i=0;i<num.length;i++){num[i]=(i+1)*2}alert(num)alert(num.length)
    ​var num1=[]for(var i=0;i<30;i++){num1[i]=(i+1)*2}alert(num1) 2,4,6,8,·····,60alert(num1.length) //30</script>

数据类型之间存储的区别(重点)

  • 我们的存储空间分成两种

  • 栈: 主要存储基本数据类型的内容

  • 堆: 主要存储复杂数据类型的内容

内存分为栈内存和堆内存

栈内存 基本数据类型 函数名在 栈内存

堆内存 复杂数据类型 引用数据类型 函数体 在堆内存

  • 复杂数据类型的存储

    1. 在堆里面开辟一个存储空间

    2. 把数据存储到存储空间内

    3. 把存储空间的地址赋值给栈里面的变量

  • 这就是数据类型之间存储的区别

数据类型之间的比较

  • 基本数据类型是 之间的比较

    var num = 1
    var str = '1'
    ​
    console.log(num == str) // true
  • 复杂数据类型是 地址 之间的比较

    var obj = { name: 'Jack' }
    var obj2 = { name: 'Jack' }
    ​
    console.log(obj == obj2) // false

数组的常用方法

  • 数组是一个复杂数据类型,我们在操作它的时候就不能再想基本数据类型一样操作了

数组常用方法之 push

  • push 是用来在数组的末尾追加一个元素

  • 返回值 是添加数据之后 新数组的长度

    var arr = [1, 2, 3]
    // 使用 push 方法追加一个元素在末尾
    arr.push(4)
    console.log(arr.push(4))//新长度
    console.log(arr) // [1, 2, 3, 4]

数组常用方法之 pop

  • pop 是用来删除数组末尾的一个元素

  • 返回值 是删除的数组的最后的那一个数据

    var arr = [1, 2, 3]
    // 使用 pop 方法删除末尾的一个元素
    arr.pop()
    console.log(arr) // [1, 2]

数组常用方法之 unshift

  • unshift 是在数组的最前面添加一个元素

  • 返回值 是添加数据之后 新数组的长度

    var arr = [1, 2, 3]
    // 使用 unshift 方法想数组的最前面添加一个元素
    arr.unshift(4)
    console.log(arr) // [4, 1, 2, 3]

数组常用方法之 shift

  • shift 是删除数组最前面的一个元素

  • 返回值 是删除的数组的第一个数据

    var arr = [1, 2, 3]
    // 使用 shift 方法删除数组最前面的一个元素
    arr.shift()
    console.log(arr) // [2, 3]

数组常用方法之 splice

  • splice 是截取数组中的某些内容,按照数组的索引来截取

<script>// splice() // 专门用来截取数组 // 数组.splice(开始的索引,截取多少个)var test = ['李白','安琪拉','猪八戒','韩信','李信','小乔','武则天']// var res = test.splice(2,2) // 删除// alert(test) //李白,安琪拉,李信,小乔,武则天 原数组发生了变化// alert(res) //猪八戒,韩信 alert(test.splice(2,2,'李青','格雷福斯') )//替换// alert(test.splice(2,0,'李青','格雷福斯'))// 增加alert(test)//李白,安琪拉,李青,格雷福斯,李信,小乔,武则天</script>

数组常用方法之 reverse

  • reverse 是用来反转数组使用的

    var arr = [1, 2, 3]
    // 使用 reverse 方法来反转数组
    verse()
    console.log(arr) // [3, 2, 1]

数组常用方法之 sort

  • sort 是用来给数组排序的

     //sort  按照每个数据一个一个对比 排序 即可排数字也可排字母var balls=[18,2,20,33,1,13]balls.sort()alert(balls)  //[1,13,18,2,20,33]//sort(function(a,b){return a-b})function haha(num1,num2){if(num1>num2){return -5; // 如果小于 不交换位置}return 5; // 大于0 交换位置 }balls.sort(haha) //因为 sort即可以排序数字 又可以排序字母// // 导致 直接排序数字 或者直接排序字母 有可能不正确的情况 // // 需要手动干预  // // 需要传一个方法 函数进去  传函数名进去 不要()alert(balls) //[33,20,18,13,2,1]

前七个只改变数组 后五个不会改变原始数组会改结果

数组常用方法之 concat

  • concat 是把多个数组进行拼接

  • 和之前的方法有一些不一样的地方,就是 concat 不会改变原始数组,而是返回一个新的数组

  var arr = [1, 2, 3]
// 使用 concat 方法拼接数组
var newArr = at([4, 5, 6])
console.log(arr) // [1, 2, 3]
console.log(newArr) // [1, 2, 3, 4, 5, 6]

数组常用方法之 join

  • join 是把数组里面的每一项内容链接起来,变成一个字符串

  • 可以自己定义每一项之间链接的内容 join(要以什么内容链接)

  • 不会改变原始数组,而是把链接好的字符串返回

    var arr = [1, 2, 3]
    // 使用 join 链接数组
    var str = arr.join('-')
    console.log(arr) // [1, 2, 3]
    console.log(str) // 1-2-3

数组常用方法之slice

  • slice是截取数组 slice(开始索引, 结束索引)

 var arr3=['李白','安琪拉','韩信','武则天']var res=arr3.slice(2,3)document.write('原始数组',arr3,'<br>')document.write('截取的数组',res,typeof(res),'<br>')//截取的数组韩信object

数组常用方法之indexOf和lastIndexOf

  • indexOf()作用: 从前到后检索该数据第一次在该数组内出现的位置 返回值: => 如果在数组内找到了该数据, 那么就是该数据第一次出现的索引位置 => 如果在数据内没有找到该数据, 那么就是 -1

  • lastIndexOf()

  • 作用: 从后向前检索该数据第一次在该数组内出现的位置

    返回值: => 如果在数组内找到了该数据, 那么就是该数据第一次出现的索引位置 => 如果在数据内没有找到该数据, 那么就是 -1

 var arr2=['李白','安琪拉','韩信','武则天']var res=arr2.indexOf('李白')var res1=arr2.lastIndexOf('武则天')alert(res) //0alert(res1) //3

数组的排序

  • 排序,就是把一个乱序的数组,通过我们的处理,让他变成一个有序的数组

冒泡排序

  • 先遍历数组,让挨着的两个进行比较,如果前一个比后一个大,那么就把两个换个位置

  • 数组遍历一遍以后,那么最后一个数字就是最大的那个了

  • 然后进行第二遍的遍历,还是按照之前的规则,第二大的数字就会跑到倒数第二的位置

  • 以此类推,最后就会按照顺序把数组排好了

 var balls=[18,2,20,33,1,13]for(var i=0;i<balls.length-1;i++){  //嵌套循环  外边的循环控制趟for(var j=0;j<balls.length-1-i;j++){ //里边的循环控制  交换次数if(balls[j]>balls[j+1]){        //下一次一定比上一次少一趟var temp=balls[j]balls[j]=balls[j+1]      //双层for循环 一层少一层balls[j+1]=temp          //里层减外层  变量相交换        }}console.log(balls)}                                console.log('交换以后'+balls) //交换以后1,2,13,18,20,33

本文发布于:2024-01-31 02:36:22,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170663978324726.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数组
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23