渡一教育公开课web前端开发JavaScript精英课学习笔记(十)数组的常用方法

数组的常用方法(ES3)

以ES3.0为基础,ES5.0 在ES3基础上扩展,ES6.0 在ES5基础上扩展。

改变原数组的方法:

  • push、pop、shift、unshift、sort、reverse、splice.
<script type = "text/javascript">
	var arr = [];
	//1、push 在数组的最后添加数据
	arr.push(1,2,3,4,5);
	console.log(arr);
	//2、如何实现数组 Push 方法
	Array.prototype.Push = function(){
		for(var idx in arguments){
			this[this.length] = arguments[idx];
		}
	}
	arr.Push("a","b","C");
	console.log(arr);
	//3、pop 把数组最后一位剪切掉
	arr.pop();
	console.log(arr);
	//4、如何实现数组 Pop 方法
	Array.prototype.Pop = function(){
		this.length --;
	}
	arr.Pop();
	console.log(arr);
	//5、unshift 在数组的前面插入元素
	arr.unshift('e', 'd');
	console.log(arr);
	//6、shift 从数组的最前面删除元素
	arr.shift();
	console.log(arr);
	//7、 reverse 逆转数组顺序
	arr.reverse()
	console.log(arr);
	//8、splice 从第几位(负数为倒序操作),截取多少位,在切口处添加元素。
	var a = arr.splice(1, 2, '10', '9')
	console.log(a);
	console.log(arr);
	//9、sort 数组排序 默认按字符的 ASCII 排列
	arr.sort();
	console.log(arr);
	//10 、 实现自定义sort,必须写两个形参,返回值为负数时前面的数放前面,为正数时后面的数放前面,0时不变位置。
	arr.sort(function(a,b){
		return b - a;	
	});
	console.log(arr);
	//11、乱序排列一个数组。
	arr.sort(function(a,b){
		return Math.random() - 0.5;	
	});
	console.log(arr);
	//11、排列一个对象数组。
	var objs = [{age:53},{age:18},{age:22},{age:40}];
	objs.sort(function(a,b){
		return a.age - b.age;
	});
	console.log(objs);
 </script>
 

不改原数组的方法

  • concat、join、split、toString、slice
<script type = "text/javascript">
	var arr1 = [1,2,3];
	var arr2 = [4,5,6]
	//concat 合并两个数组
	var arr3 = arr1.concat(arr2);
	console.log(arr1,arr2,arr3);
	//join 把数组各元素用参数连接起来并返回字符形式
	var  str = arr3.join('-')
	console.log(str);
	//toString 返回各元素以逗号分割的字符串。
	var str1 = arr3.toString();
	console.log(str1)
	//split 把字符串按参数进行分割成数组
	var arr4 = str.split('-');
	console.log(arr4);
	//slice 截取数组从第几位(负数倒序)到第几位(没有第二个参数则截取到结尾)。可以作为转换数组的方法(不填参数)
	var arr5 = arr4.slice(1,5);
	console.log(arr5);
 </script>

类数组

属性要为索引(数字)属性,必须有Length属性,最好加上push方法。

<script type = "text/javascript">
	var obj = {
		0:'a',
		1:'b',
		2:'c',
		3:'d',
		length:4,
		push:Array.prototype.push,
		splice:Array.prototype.splice
	}
	obj.push('e');
	console.log(obj);	
 </script>

数组去重

  • 数组去重 利用对象的属性不能重名的特性
<script type = "text/javascript">
	//数组去重 利用对象的属性不能重名的特性
	var arr = [1,1,1,1,1,2,2,2,2,3,3,3,3,3,4,4,4,4,'a','a','a','a','a','b','b','b','b','b','b','b','b','c']
	var obj = {}
	var arr1 =[]
	for(var idx in arr){
		if(obj[arr[idx]] != 'abc'){
			obj[arr[idx]] = 'abc';
			arr1.push(arr[idx]);
		}
	}
	console.log(arr1,obj);	
 </script>

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值