欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

红宝书第五章(1)-对象和数组

程序员文章站 2022-05-26 11:33:38
...

1.对象

红宝书第五章(1)-对象和数组

//Object类型
		//创建Object类型
		(function test_01(){
			var person=new Object();
			person.name="小米";
			person.age=29;
			console.log(person);
			
			//对象字面量表示法
			var person={
				name:"小华",
				age:20
			}
			console.log(person);
			// 访问对象属性的方法
			// 点方法
			console.log(person.name);
			//方括号法
			console.log(person["age"]);
		})();

红宝书第五章(1)-对象和数组

2.数组

红宝书第五章(1)-对象和数组

// Array对象(数组中的每一项可以保存任何类型的数据)
		//创建数组
		(function(){
			var color=new Array();
			console.log(color);
			var color=new Array(20);
			console.log(color);
			
			var colors=["red","blue","green"];
			// 访问第一项
			console.log(colors[0]);
			//修改第二项
			colors[1]="black";
			console.log(colors[1]);	
		})();
		
		//lenght属性不只是只读,还可以通过设置这个属性,可以将从数组中的末尾移除项或向数组中添加新项
		(function (){
			var colors=["red","blue","green"];
			// 删除
			colors.length=2;
			console.log(colors);//["red","blue"]
			
			// 使用length添加数值
			var args=[];
			for(var i=0;i<10;i++){
				args[args.length]=i;
			}
			console.log(args);//[0,1,2,3,4,5,6,7,8,9]
		})();
		// 检测数组
		(function(){
			var colors=["red","blue","green"];
			// 只有一个全局执行域,可以使用in-stan-ce-of
			if(colors instanceof Array){
				console.log("colors是数组");
			}
			//使用框架,有多个全局执行域
			//isArray确定某个值是不是数组,而不管它在哪个全局执行环境中创建的
			if(Array.isArray(colors)){
				console.log("colors是数组");
			}
		})();

红宝书第五章(1)-对象和数组
0.栈、队列方法
红宝书第五章(1)-对象和数组
1栈方法
数组尾端为栈顶

// 数组的栈方法push()和pop()
		(function(){
			var colors=new Array();
			// 在末尾添加数据
			colors.push("red","blue");
			console.log(colors);//["red","blue"]
			// 在末尾删除数据
			colors.pop();
			console.log(colors);//["red"]
			// 获取删除项(获取的结果是数组)
			console.log(colors.pop());
			console.log(colors);//["red"]
		})();

2.队列方法
(1)队首为数组尾部,队尾在数组头部的队列
队首-》数组尾push()
队尾->数组头shift()

// 数组的队列方法push()和shift()
		(function(){
			var colors=new Array();
			// 在末尾添加数据
			colors.push("red","blue");
			console.log(colors);//["red","blue"]
			//在首端删除数据
			var temp=colors.shift();
			console.log(temp);//red
			console.log(colors);//["blue"]
		})();

(2)队尾为数组尾部,队首在数组头部的队列

//pop()和unshift()
		(function(){
			// 在首端添加数据
			var colors=new Array("blue");
			colors.unshift("red");
			console.log(colors);//["red","blue"]
			
			//在末尾删除数据
			temp=colors.pop();
			console.log(temp);//blue
			console.log(colors);//["red"]
		})();

3.数组的重排序方法
reverse()和sort()

		(function(){
			// reverse()方法是单纯的反转
			var values=[1,2,3,4,5];
			values.reverse();
			console.log(values);//[5, 4, 3, 2, 1]
			
			//sort()接收一个比较函数作为参数
			//返回1 交换顺序
			//返回-1 和0 都不交换
			function compare(value1,value2){
				if(value1<value2){
					return -1;
				}else if(value1>value2){
					// 1为交换顺序
					return 1;
				}else{
					return 0;
				}
			}
			var args=[0,9,1,23,14,-1];
			args.sort(compare);
			console.log(args);// [-1, 0, 1, 9, 14, 23]
		})();

4不改变原来数组的操作方法
拼接con-cat和sli-ce方法

		(function(){
			// concat()方法(不改变原来数组的数据)
			//参数为元素,或者数组,结果会添加在数组的末尾
			var color=["red","green","blue"];
			var colors=color.concat("yellow");
			console.log(color);//["red", "green", "blue"]
			console.log(colors);//["red", "green", "blue", "yellow"]
			
			//slice()方法  切片方法
			colors =["red", "green", "blue", "yellow","purple"];
			// 只有一个参数时,从该下标到结束
			var color1=colors.slice(1);
			console.log("color1="+color1);//color1=green,blue,yellow,purple
			// 有两个参数时,从该前下标到后一个下标
			var color2=colors.slice(1,3);
			console.log("color2="+color2);//color2=green,blue
			//如果slice()方法的参数中有一个负数,则用数组长度加上该数来确认相应的位置
			var color3=colors.slice(-4,-2);
			console.log("color3="+color3);//等价于slice(1,3)
		})();

5改变原来数组的操作方法`
spli-ce

//操作方法
		(function(){
			//splice()方法
			//删除操作  指定2个参数;要删除的第一项的位置,删除的项数
			var colors=["red","green","blue"];
			var removed=colors.splice(0,1);
			console.log(colors);//["green","blue"]
			console.log(removed);//["red"]
			//插入操作  指定3个参数:起始位置,删除项数0,要插入的项
			removed=colors.splice(1,0,"yellow","orange");
			console.log(colors);//["green", "yellow", "orange", "blue"]
			console.log(removed);//[]
			//替换操作  指定3个参数:起始位置,删除项数,要插入的项
			removed=colors.splice(1,2,"red","purple");
			console.log(colors);//["green", "red", "purple", "blue"]
			console.log(removed);//["yellow", "orange"]
		})();

红宝书第五章(1)-对象和数组
6位置方法(查找方法)

//位置方法(查找方法)
		//indexOf() lastIndexOf()查找的都是元素在数组中的索引,只是查找的顺序不同
		(function(){
			//indexOf() 接收两个参数:查找的项,和(可选的)表示查找的起点位置的索引
			var numbers=["green", "red", "purple", "blue"];
			console.log(numbers);
			console.log(numbers.indexOf("red"));//1
			//lastIndexOf() 接收两个参数:查找的项,和(可选的)表示查找的起点位置的索引
			console.log(numbers.lastIndexOf("red"));//1
		})();

7.数组的迭代方法

//迭代方法
		(function(){
			var numbers=[1,2,3,4,5,6,7,8];
			function test(item){
				return (item>3);
			}
			
			// every()如果该函数每一项都返回ture,则返回true
			var everyResult=numbers.every(test);
			console.log(everyResult);//false
			// some()如果该函数存在一项都返回ture,则返回true
			var someResult=numbers.some(test);
			console.log(someResult);//true
			//filter()返回该函数中返回true的项,形成数组
			var filterResult=numbers.filter(test);
			console.log(filterResult);//[4, 5, 6, 7, 8]
			//map()返回每次调用该函数的结果组成的数组
			function test2(item){
				return item*2;
			}
			var mapResult=numbers.map(test2);
			console.log(mapResult.join(","));//2,4,6,8,10,12,14,16
			
			
			 //forEach()
			 var array=[1,2,3,4,5];
			var eachResult=array.forEach(function(item,index,array){
			   console.log(array[index]);//[1,2,3,4,5]
			});
		})();
相关标签: JavaScript