对象继承自object Array 数组 Function 函数(函数也是继承自object)
数组:逻辑关系 线性关系(一个下标对应一个值)
存储关系 连续的(数组名字保存的是首地址)
有利于存取,不利于删除和插入
数组动态扩充,可以存放任何数据类型
定义数组
(1)构造数组
var arr=new Array(10) 构造空间为10的数组
arr[0]=12;
arr[1]='12123'
arr=['1','as','asd',new.Object(){},45,[12,23]]
没有放入数据的地方会默认填充undefined来占位置。
(2).糖衣法 简单写法
var arr=['1','as','asd',new.Object(){},45,[12,23]]
数组的常用方法
1.arr.length 求数组长度(长度也是动态)
取出数组第三个元素:arr[2]
存数据 arr[57]='123'
代码示例如下:
求[12,23,45,67,11,24]的平均值:
var arr=[12,23,45,67,11,24]
var sum=0
for (var i =0;i<arr.length;i++){
sum+=arr[i]
}
alert(sum)
<script>
var arr=[12,23,45,67,11,24]
var max=arr[0]
var min=arr[0]
for(var i=1;i<arr.length;i++){
if (arr[i]>max){
max=arr[i]
max_index=i
}
if (arr[i]<min){
min=arr[i]
min_index=i
}
}
console.log(min,max,max_index,min_index)
alert(min)
alert(max)
</script>
2.array.concat()方法:数组拼接
var a=[1,2,3]
a.concat([4,5])
a.concat([6,7,[4,5,6]])
不要拿小数验证小数,不要拿NaN验证 NaN===NaN
3.array.join()
转换成字符串,不加参数变成字符串默认加逗号
4.pop()删除并拿到数组最后一个元素,返回值为删除的那个元素,弹栈
a.pop()
5.push() 压入到数组的尾部
a.push()
6.a.reverse() 反转列表
7.array.shift() 对应队列 功能 移除队列的头部 数组的第一个元素
返回值数组原来的第一个元素
参数:无参
var a=[1,[2,3],4]
a.shift(); 返回1
8.unshift
把值加到头部
var a=[1,[2,3],4]
a.unshift([5,6,7]) 结果为[[5,6,7],1,[2,3],4]
9.slice() 截取数组
a.slice(start,end) 左闭右开 返回值:新数组
var a=[1,2,3,4,5,6]
var b=a.slice(-4,-1) 结果为[3,4,5],从左往右截取,不要从右往左截取
10.sort()排序
a.sort()
sort的使用方法如下:
var arr=[
{
name:'LiLi',
year:48,
salary:3500
},
{
name:'XiaoFang',
year:80,
salary:6000
},
{
name:'Wang',
year:37,
salary:125000
},
];
//比较函数 为了给sort提供信息
function compare(a,b) {
return a.year-b.year; //year改为age就按照age排序,从小到大排,return b.year-a.year; 从大到小排
}
// function compare(a,b) {
// return a.name.localeCompare(); //按照name排序
// }
var obj=arr.sort(compare) //调用函数
console.log(obj)
for (var index in obj){
console.log(index)
}
结果为:
11.splice(start,deleteCount,value) 删除和插入的下标,删除的个数,插入的数据
插入,删除
删除:需要开始下标,和删除个数
var arr=[1,2,3,4,5]
arr.splice(1,3)
插入 第二个参数一定要写
var v=arr.splice(2,0,'456','edf')
<script>
var arr=[1,2,3,4,5]
arr.splice(1,3)
</script>
代码如下:
<script>
<!--
插入与删除
-->
var a=[1,2,3,4,5]
var b=a.splice(1,3,34,56)//第一个参数是位置,第二个参数是0是插入,不是0就是删除,第三个及以后的是插入的数值
console.log(a)
a.toString()
console.log(a)
</script>
结果如下: