数组

数组:一组有序的变量的集合。
数组的介绍:array
1、数组的定义 :var 数组变量=【】;
2、数组是一种比较特殊的对象。数组的所有的键都是数值型的,从0开始依次递增,键对应的只是js支持的任意类型。
3.对象是一组无序的 键值对的集合,键是字符串。值可以是js支持的任意类型。
4、数组还有一个比较特殊的键:length,代表了数组中元素的个数。
length=数组最大下标+1;
5、数组作为一个特殊的对象,键都是数值型。在数组中,称为小标(索引)角标。
6、数组中的每个数据都对应了一个下标,是通过下标去获得对应的值。每个下表对应的值称为【元素element】。可以通过下标去获得下表对应的元素。
7、数组中的元素才是我们真正要访问处理的数据,如何去访问这些元素呢?
通过:数组名【下标】
8、数组是一个对象,所以数组在堆中,每一个元素都是连续的。纾尊变量名保存的是数组对象的第一个元素的地址。是数组的首地址。
9、数组的元素实在堆中连续分配。优点:随机访问元素的效果很高。
缺点:插入元素和删除元素的效率比较低,需要移动大量的元素。

数组的多种定义形式介绍:
1、表达式方式
var 数组名=【元素1,元素2,…】;
2、使用构造函数创建
var 数组名=new Array(元素1,元素2…);

var arr=new Array(1,2,3);
//使得3自增1;
arr[2]++;//(1,2,4);
var arr=new Array(6);//只输入一个值,表示长度为6;
arr[0];//undefined;
1
2
3
4
5
var arr=[1,2,3,4,5];
console.log(arr.length);//5
遍历所有的arr中的元素
for(var i=0;i<arr.length;i++){
    arr[i};//arr[0]=1,arr[1]=2,....
}
数组中支持任意类型
var arr=[1,true,function(){console.log('hello')},'',{name:'Mike'}]

1
2
3
4
5
6
7
8
9
instanceof 操作符
语法:对象 instanceof 类型(构造函数名)。
作用:用来判断左边的对象是否是右边的类型,如果是返回true,否返回false。

//例子:
console.log([] instanceof array);//true;
console.log([] instanceof number);//false;
1
2
3
数组的length属性:
1、该属性代表了数组中的元素个数。
2、该属性的值为一个整数值,大于等于0的值。
3、该属性值为js引擎底层自己进行维护的一个属性,会根据数组元素多少进行动态的调整。该值为元素最大下标+1。
4.可以直接给length属性赋值,实现对数组动态的扩容和缩容。
如果使用length扩容,那么没有元素的下标对应的值为undefined。
如果使用length缩容,那么截止至输出的长度。

in操作符的使用:
作用:用来检测某个字符串是否是某个对象的key。
语法:key in obj
返回:如果是,返回true,否则返回false。

var array = createRandomArray(1,4,56,7,9,2,3,6,7,1);
    array.name = "tom";
    console.log ("0" in array);//true
    console.log ("9" in array);//true
    console.log ("length" in array);//true
    console.log (8 in array);//true
    var key = "6";
    console.log (key in array);//true

    console.log ("10" in array);//false
    console.log ("name" in array);//true

    var obj = {
        name1:"jerry",
        age:18,
    };

    console.log ("name1" in obj);//true
    var key = "age";
    console.log (key in obj);//true
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
数组的遍历方式:
1.基本for循环

var arr=['a','b','c','d'];
for(var i=0;i<arr.length;i++){
    console.log(arr[i]);
}
1
2
3
4
2.for-in 用来遍历对象

var arr=['a','b','c','d'];
for(var i in arr){
    console.log(i);//0,1,2,3[自变量i 返回的是string类型]
    console.log(arr[i]);//a,b,c,d
}
1
2
3
4
5
3.for-of 专门用来遍历数组

var arr=['a','b','c','d'];
for(var i of arr){
    console.log(i);//a,b,c,d
}
//i代表每一个元素
1
2
3
4
5
4.使用数组对象的实例函数forEach

var arr=['a','b','c','d'];
var fn=function(value,index,array){
    //被遍历的数组的每一个元素
    console.log("value="+value);
    //被遍历数组的每一个元素的下标
    console.log("index="+index);
    //被遍历的数组对象
    console.log("array="+array);

    console.log(`第${index+1}个元素为${value}`);
}
arr.forEach(fn);


//以上代码可写为;
arr.forEach(function(value,index){
    console.log(`第${index+1}个元素为${value}`);
});
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
类数组对象:
具有一些数组特点的对象。
类数组对象应该具有的特点:
1.大部分的键,主要的键都是数值型的字符串。
2.有length属性。length作为对象的一个键的存在。length对应的值为数值型的键对应的值的个数。
类数组对象的访问方式和数组的访问方式基本一致。
数组和类数组对象的区别:
1、数组的length属性的值是动态的。底层维护的。类数组对象的该属性需要自己来维护。
2、数组作为js的内置对象类型,js定义了很多用来操作的实例函数,但是类数组对象就没有提供这些实力函数。
以前接触过的类数组对象:
arguments对象就是一个类数组对象。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值