Day19--js关于数组的基础操作

1.1 创建数组

创建数组的基本方式有两种。

(1) 第一种是使用Array构造函数:

        var colors1 = new Array();		//定义空数组
        var colors2 = new Array(20);	//定义长度为20的数组

2) 第二种方式是使用数组字面量表示法:

                var colors = ['red','blue','green'];
                var names = [];

推荐使用 [] 操作符,和使用Array的构造函数相比,编写代码的速度更快,效率更高。

1.2 读写数组

写--使用 [] 操作符将数据赋给数组:

                var nums = []; 
                nums[0] = 1;	//通过[]操作符赋值

                for (var i = 0; i < 100; ++i) {  
                    nums[i] = i+1;		
                }

读--使用 [] 操作符读取数组中的元素:

            var arr6 	= new Array({x:1, y:2}, h+5, h+9);
            console.log(arr6[0]);

length属性反映的是当前数组中元素的个数,使用它,可以确保循环遍历了数组中的所有元素。

JavaScript 中 的数组也是对象,数组的长度可以任意增长,超出其创建时指定的长度。数组元素不连续的数组我们称为稀疏数组

            var arr = new Array(5); 
            arr[10]	= 6; 
            arr[100] = 56; 	
            console.log(arr);	
            console.log(arr.length);	//数组元素一共是101个,即length为101。

 

1.3 数组元素

元素的添加:

(a) 使用 [] 操作符;

(b) arr.push(val),在数组末尾添加元素;

(c) arr.unshift(val),在数组开头添加元素

            var arr = ['h', 'q', 'y', 'j'];
            arr[4] = 'five'; 			
            arr.push('one');			
            arr.push('two_1', 'two_2');
            arr.unshift('first');		
            arr.unshift('first_1', 'first_2');	
            //区别:[]执行完毕,返回所添加的元素值;push(val)/unshift(val)执行完毕后返回数组长度

元素的删除

(a) delete arr[i]操作

(b) arr.prop() 删除数组最后一个元素

(c) arr.shift() 删除第一个元素

            var arr = ['h', 'q', 'y', 'j'];
            delete arr[2]; 	
            arr.pop();	
            arr.shift();	
            delete arr[0];
            //区别:
            //delete执行完毕返回true或false,只删除元素值不会改变数组长度;
            //pop()/shift()执行完毕返回删除的数组元素,改变数组长度

 

遍历数组元素

for循环对数组元素进行遍历:

            var numbers = [1,2,3,5,8,13,21]; 
            var sum = 0;
            for (var i = 0; i < numbers.length; ++i) {  
                sum += numbers[i];	//通过[]操作符读取
            }
            console.log(sum); 

1.4 数组复制

将一个数组赋给另外一个数组,有两种方式,分别为浅复制和深复制。

浅复制

            var nums = []; 
            for (var i = 0; i < 100; ++i) {    
                nums[i] = i+1;
            } 

            var samenums = nums;
            nums[0] = 400;
            console.log(samenums==nums)//true
            console.log(samenums[0]); 

这种行为被称为浅复制,新数组依然指向原来的数组。

深复制

            var nums = []; 
            for (var i = 0; i < 100; ++i) {  
               nums[i] = i+1; 
            } 

            var length =nums.length;	//数组长度
            for(var i=0;i<length;i++){
                samenums[i]=nums[i]
            }
            console.log(samenums==nums)//false
            nums[0] = 55;
            console.log(samenums[0]);

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值