数组也是数据类型中的一种
数组就是一个 []
在 []
里面存储着各种各样的数据,按照顺序依次排好
直接使用 []
的方式创建一个数组
// 创建一个空数组 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 就是多少
// 创建一个数组 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>
我们的存储空间分成两种 栈 和 堆
栈: 主要存储基本数据类型的内容
堆: 主要存储复杂数据类型的内容
内存分为栈内存和堆内存
栈内存 基本数据类型 函数名在 栈内存
堆内存 复杂数据类型 引用数据类型 函数体 在堆内存
复杂数据类型的存储
在堆里面开辟一个存储空间
把数据存储到存储空间内
把存储空间的地址赋值给栈里面的变量
这就是数据类型之间存储的区别
基本数据类型是 值 之间的比较
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
是用来在数组的末尾追加一个元素
返回值 是添加数据之后 新数组的长度
var arr = [1, 2, 3] // 使用 push 方法追加一个元素在末尾 arr.push(4) console.log(arr.push(4))//新长度 console.log(arr) // [1, 2, 3, 4]
pop
是用来删除数组末尾的一个元素
返回值 是删除的数组的最后的那一个数据
var arr = [1, 2, 3] // 使用 pop 方法删除末尾的一个元素 arr.pop() console.log(arr) // [1, 2]
unshift
是在数组的最前面添加一个元素
返回值 是添加数据之后 新数组的长度
var arr = [1, 2, 3] // 使用 unshift 方法想数组的最前面添加一个元素 arr.unshift(4) console.log(arr) // [4, 1, 2, 3]
shift
是删除数组最前面的一个元素
返回值 是删除的数组的第一个数据
var arr = [1, 2, 3] // 使用 shift 方法删除数组最前面的一个元素 arr.shift() console.log(arr) // [2, 3]
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
是用来反转数组使用的
var arr = [1, 2, 3] // 使用 reverse 方法来反转数组 verse() console.log(arr) // [3, 2, 1]
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
不会改变原始数组,而是返回一个新的数组
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(要以什么内容链接)
不会改变原始数组,而是把链接好的字符串返回
var arr = [1, 2, 3] // 使用 join 链接数组 var str = arr.join('-') console.log(arr) // [1, 2, 3] console.log(str) // 1-2-3
slice是截取数组 slice(开始索引, 结束索引)
var arr3=['李白','安琪拉','韩信','武则天']var res=arr3.slice(2,3)document.write('原始数组',arr3,'<br>')document.write('截取的数组',res,typeof(res),'<br>')//截取的数组韩信object
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 条评论) |