3个js数组函数,变成数组本身的3个方法

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>把自定义数组的三个函数,变成数组本身的方法</title>
</head>
<body>
	<script>

		//1.把稀疏数组变为不稀疏数组的函数--变成数组本身的方法
		
		/*
		 * 稀疏数组 变为 不稀疏数组
		 * @params array  arr 稀疏数组
		 * @return array  resArr不稀疏的数组
		*/
		Array.prototype.noSparse=function(arr){
			var resArr=[];//创建空数组
			for (var i = 0; i < arr.length; i ++) {
				if (arr[i] !== undefined) {
				resArr.push(arr[i])//添加到数组中去
				}
			}
				return resArr;
		}

		// 调用
		var arr=[1,3,2,,,,4,,56,,,7];
		console.log(arr);//原始数组
		console.log(arr.noSparse(arr));//调用自定义的noSparse()方法,返回不稀疏数组
		console.log("");




		//2.判断元素是否在数组中的函数--变成数组本身的方法
		
		/*
		 * 判断一个元素是否在该数组内
		 * @param array  arr(数组)
		 * @param fixed  val(元素值)
		 * @param int  type (全等还是值等于)   1 全等于, 其他值就是 值等于
		 * @return boolean(true/false)
		 */		
		Array.prototype.inArray=function(arr,val,type){
			for (var i = 0; i < arr.length; i ++) {
				if (type === 1) {
					if (arr[i] === val) {
					return true;
				}
			} 
			else {
					if (arr[i] == val) {
					return true;
				}
			}
		
		}
			return false;
		}

		// 调用
		var arr=[1,2,5,4,7,8,9];
		console.log(arr);//原始数组
		console.log(arr.inArray(arr,'2',0));//调用自定义的inArray()方法,返回true/false
		console.log(arr.inArray(arr,'2',1));
		console.log("");



		//3.数组去重的函数--变成数组本身的方法
		
		/*
		  * 数组 去重
		  * @params  array  arr原始数组
		  * @return  array  resArr去重后的数组
		*/
		Array.prototype.noRepeat=function(arr){
			var resArr = [];  //创建空数组

			for (var i = 0; i < arr.length; i ++) {
				if (!arr.inArray(resArr, arr[i], 1)) {
					resArr.push(arr[i]);
				}
			}

			return resArr;

		}

		// 调用
		var arr=[1,2,5,4,1,1,4,4,4,6,7,8,6,6,6,6];
		console.log(arr);//原始数组
		console.log(arr.noRepeat(arr));////调用自定义的noRepeat()方法,返回 去重后的数组


		//查看一下Array的原型(属性和方法)
		console.log(Array.prototype);
	</script>
</body>
</html>
原文地址:https://www.cnblogs.com/1666818961-lxj/p/7404768.html