JavaScript数组和数组中的方法

数组


定义

创建数组

语法 : var array = new Array(10);
或:var array = []; // [值1,值2,值3...]
使用索引来操作数组中的元素
数组的存储性能比普通对象好,在开发中经常使用

在数组中添加元素

语法:数组[索引] = 值;
读取不在的索引会返回undefined

获取数组中的数目

使用length属性
	语法:数组.length
	非连续的数组会获取到最大索引+1,尽量不要创建非连续数组

修改length

如果修改的length大于原长度,则多余部分会空出来
如果修改的length小于原长度,则多余的部分会被删除

向数组最后一个位置添加元素:
	数组[数组.length] = 值;
数组中的元素可以是任意的数据类型
数组中嵌套数组叫做二维数组
			//创建一个数组
			var array = [];
			array[0] = 10;
			array[1] = 20;
			console.log(array.length); // 输出2
			array[array.length] = 30;
			
			//数组中放对象:
			var arr1 = [{name:"qw"}, {age:12}];
			console.log(arr1[1]); // {age: 12}
			
			//数组中放函数
			var arr2 = [function(){document.write("函数1")}];
			arr2[0](); // 调用数组中的函数

数组的遍历

将数组中所有的元素都取出来

 var arr = [10,20,30,40,50];
 for (var i = 0; i < arr.length; i ++){
		console.log(arr[i]);
 } 

数组中的方法

push()
	该方法可以向数组的末尾添加一个或多个元素,并返回数组的新长度
	可以将要添加的元素做为方法的参数传递
pop()
	该方法可以删除数组的最后一个元素,并将删除的元素返回
unshift()
	向数组开头添加一个或多个元素,并返回新的数组长度
shift()
	可以删除数组的第一个元素,并将被删除的元素作为返回值值返回 
slice()
	可以用来从数组中提取指定元素,不影响原数组
	参数
		1.开始位置索引,包含
		2.结束位置索引,不包含,如果不写则从开始截取到最后
		如果传递的赋值,则从后往前计算
splice()
	可以用于删除数组中的指定元素,将删除的元素返回
	参数
		1.开始位置索引
		2.删除的数量
		3.第三个及以后的元素会自动插入到开始位置索引前面
concat()
	可以连接两个或多个数组,并将新的数组返回
		
join()
	可以将数组转换成一个字符串,不会对原数组产生影响
	可以指定一个字符串作为参数,会成为字符串的连接符
				
reverse()
	用于反转数组中元素的顺序
	会修改数组
sort()
	用来对数组中的元素进行排序,也会改变原数组
	排序规则:
		默认为Unicode编码顺序
		可以自定义一个回调函数来指定排序规则
		回调函数会定义两个形参,浏览器会分别使用数组中的元素作为实参去调用回调函数
		不确定使用数组哪些元素进行调用,但是第一个实参一定在第二个实参前面
		如果返回一个大于零的值,则元素会交换位置
			小于或等于零则位置不变
			//升序
				//return a - b;
			//降序
				//return b - a;

代码说明:

			//push()
			var arr1 = [1,2,3];
			length =  arr1.push(4,5,6); // length = 6;
			console.log(arr1); // [1, 2, 3, 4, 5, 6]
			
			//pop()
			num = arr1.pop(); //num = 6;
			console.log(arr1); // [1, 2, 3, 4, 5]
			
			//unshift()
			length = arr1.unshift(9,8); // length = 7
			console.log(arr1); // [9, 8, 1, 2, 3, 4, 5]
			
			//shift()
			num = arr1.shift(); // num = 9;
			console.log(arr1);  // [8, 1, 2, 3, 4, 5]
			
			//slice()
			var result = arr1.slice(1,3);
			console.log(result); // [1, 2]
			console.log(arr1);// [8, 1, 2, 3, 4, 5]
			
			//splice
			result = arr1.splice(0,2,1,2);
			console.log(result); //[8, 1]
			console.log(arr1); // [1, 2, 2, 3, 4, 5]
			
			//concat()
			var arr2 = [10,20,30];
			result = arr1.concat(arr2);
			console.log(result); // [1, 2, 2, 3, 4, 5, 10, 20, 30]
			
			//join()
			result = arr1.join("~");
			console.log(result); // 1~2~2~3~4~5
			
			//reverse()
			arr1.reverse();
			console.log(arr1); // [5, 4, 3, 2, 2, 1]
			
			//sort()
			arr1.sort();
			console.log(arr1) // [1, 2, 2, 3, 4, 5]
			//回调函数
			arr1.sort(function(a,b){
				//升序
					//return a - b;
				//降序
					//return b - a;
			})

forEach

 forEach()	(IE8一下浏览器不支持)
	需要一个函数作为参数
	这种函数由我们创建,不由我们调用,称为回调函数
	数组中有几个函数,函数就会执行几次,每次执行时,浏览器会将到的元素以实参的形式传递进来,可以定义一个形参获取这些元素
	浏览器会在回调函数中传递三个参数
		第一个参数:
			当前正在遍历的元素
		第二个参数:
			元素的索引
		第三个参数:
			正在遍历的数组
			var arr = [10,20,30,40];
			arr.forEach(function(value, index, obj){
				console.log(value); // 10 20 30 40
				console.log(index); // 0 1 2 3 
				console.log(obj); // [10, 20, 30, 40]
			});
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

轩尼诗道-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值