JavaScript思维导图——Day 11(数组)

在这里插入图片描述

<!DOCTYPE html>
<html>
<head>
	<title></title>
</head>
<body>
<script type="text/javascript">

	//push
	// var arr = [1,2,3,1,1,1];
	// Array.prototype.push = function () {
	// 	for(var i = 0; i < arguments.length;i++){
	// 		this[this.length] = arguments[i];

	// 	}
	// }

	// arr.pop();最后一位剪切里面没参数

	// arr.unshift(3);
	//数组第一位加3

	// arr.shift();
	//删除第一位

	// arr.reverse();
	//数组翻转

	// arr.splice(从第几位开始,截取多少的长度,在切口处添加新的数据);
	//如果数组里面有负数

	// splice = function (pos) {
	// 	pos += pos > 0 ? 0 : this.length;
	// }

	//排序
	//升序
	// arr.sort();

	//降序

	// arr.sort().reverse();

	//自定义排序

	//1.必须写俩形参
	//2.看返回值
	// 1.当返回值为负数时,那么前面的数放在前面
	// 2.为正数,那么后面的数在前  sss
	// 3.为0 不动

	// arr.sort(function (a , b) {
	// 
	// 		//return a - b; 升序 
	// 		//return b - a; 降序
	// 	
	// });

	//给一个有序的数组乱序
	// var arr = [1,2,3,4,5,6,7];
	// arr.sort(function (a,b) {
	// 	if (a > b) {
	// 		return Math.random() - 0.5
	// 	}
	// });

	// var cheng = {
	// 	name : "cheng",
	// 	age : 18,
	// 	sex : 'male',
	// 	face : "handsome"
	// }

	// var deng = {
	// 	name : "deng",
	// 	age : 40,
	// 	sex : undefined,
	// 	face : "amazing"
	// }

	// var wang = {
	// 	name : "wang",
	// 	age : 22,
	// 	sex : 'male',
	// 	face : 'smart'
	// }

	// var arr = [cheng,deng,wang];
	// arr.sort(function (a , b) {
	// 		return b.age - a.age;
		
	// });

	// function retBytes(str) {
	// 	var num = str.length;
	// 	for(var i = 0; i < str.length; i++){
	// 		if (str.charCodeAt(i) > 255) {
	// 			num ++;
	// 		}
	// 	}
	// 	return num;
	// }

	// var arr = ['ab沙发沙发上c','bcd','cc束带结发cc','dddd','sjfjsfjsf','sjfjsjfjssj水电费fjsf','fsfsf','我'];
	// arr.sort(function (a,b) {
	// 	return retBytes(a) - retBytes(b);
	// })

	//连接数组不改变原数组
	// var arr = [2,3,5,2,1,5];
	// var arr1 = [0,4,6,1,4];
	// var arr2 = arr.concat(arr1);

	//数组变成字符串 arr.toString();

	//截取数组不改变原数组
	//slice(从该位开始截取,截取到该位)
	// var arr1 = arr.slice(1,3);
	//从第几位截取一直截取到头
	// var arr2 = arr.slice(2);



// 	var arr = [41,432,11,368,0];
//    //向数组中加入连接符号
// 	var arr1 = arr.join("-");
// 	//把字符串按成什么参数拆数组
// 	var arr2 = arr1.split("-");

// 	var str = "alibaba";
// 	var str1 = "baidu";
// 	var str2 = "tencent";
// 	var str3 = "toutiao";
// 	var str4 = "wangyi";
// 	var str5 = "xiaowang";
// 	var str6 = "nv";

// 	//散列
// 	var arr = [str,str1,str3,str4,str5,str6];
// 	console.log(arr.join());

  //类数组

// function test() {
// 	console.log(arguments);
// }
// test(1,2,34,5,5);

// //属性要为索引(数字)属性,必须有length属性,最好加上push
// // Array.prototype.push = function (target) {
// // 	obj[obj.length] = target;
// // 	obj.length++;
// // }
// var obj = {
// 	"0" : 'a',
// 	"1" : '1',
// 	"2" : 'c',
// 	"push" : Array.prototype.push,
// 	"length" : 3,
// 	"splice" : Array.prototype.splice 
// }

// var obj1 = {
// 	"2" : "a",
// 	"3" : "b",
// 	"length" : 2,
// 	"push" : Array.prototype.push
// }
// obj1.push('c');
// obj1.push('d');


//自创类型识别方法

function mytypeof(target) {
	var ret = typeof(target);
	var template = {
		"[object Array]" : "array",
		"[object Object]" : "object",
		"[object Number]" : "number - object",
		"[object Boolean]" : "boolean - object",
		"[object String]" : "string - object"
	}

	if (target === null) {
		return null;
	}
	else if (ret == "object") {
		var str = Object.prototype.toString.call(target);
		return template[str];
	}else{
		return ret;
	}
}

//数组去重
Array.prototype.unique = function () {
	var temp = {};
	var arr = [];
	var len = this.length;
	for(var i = 0; i < len; i++){
		if (!temp[this[i]]) { 
		//没有属性值取undefined ---> false 取反 true
			temp[this[i]] = 'la';
			arr.push(this[i]);
		}

	}
	return arr;
}

var arr = [12,3,1,3,3,4,11,51,1];



  




	


</script>
</body>
</html>
发布了82 篇原创文章 · 获赞 21 · 访问量 2026

猜你喜欢

转载自blog.csdn.net/weixin_45174208/article/details/104317023