JavaScript【十】2022.5.16第十二周

***数组对象

**检测是否为数组

*instanceof运算符
instanceof可以判断一个对象是否是某个构造函数的实例
*Arrary.isArray()
Arrary.isArray()用于判断一个对象是否为数组,isArray()是html5中提供的方法

***添加删除数组元素的方法
*数组中有进行增加、删除元素的方法

这四种方法会直接修改数组

pop和shift一组,理解为推出数组中已有元素。 
push:在数组的尾部加入一个元素,并返回原有length+1的长度
var arr=[1,2,3];
console.log(arr.push(4));//4 
console.log(arr);//[1234]

unshift:在数组的头部加入一个元素,并返回原有length+1的长度。
var arr = [1,2,3];
console.log(arr.unshift(4));//4 
console.log(arr);//[4,1,2,3]

pop:删除数组尾部第一个元素,并返回这个元素。
var arr = [1,2,3];
console.log(arr.pop())://3 
console.log(arr);//[1,2]
shift:删除数组头部的第一个元素,并返回这个元素。
var arr = [1,2,3]:
console.log(arr.shift());//1 
console.log(arr);//[23]
总结:
1.这四种方法都会直接修改原数组
2.push和unshift分别为尾部和头部添加元素,pop和shift分别为尾部和头部删除元素。
3.push和unshift返回的是修改后的数组length,pop和shift返回的是被删除的元素。

***数组排序

数组中有对数组本身排序的方法

 reverse()   颠倒数组中元素的顺序,无参数   该方法会改变原来的数组返回新数组
 sort()         对数组的元素进行排序          该方法会改变原来的数组饭回新数组

注意:sort方法需要传入参数来设置升序、降序排序

如果传入"function(ab){returna-b;}”,则为升序
如果传入"function(ab){returnb-a}”,则为降序


**数组索引方法

indexOf()         数组中查找给定元素的第一个索引    如果不存在则返回-1
lastIndexOf()   在数组中的最后一个的索引               如果不存在则返回-1

**数组转换为字符串

toString()       把数组转化成字符串,逗号分割每一项
join('分隔符')  方法用于把数组中的所有元素转化为一个字符串


注:join方法如果不传入参数,则按照“,”拼接元素

**其他方法
concat()  连接两个或多个数组 不影响原数组             【返回一个新数组】
slice()     数组截取slice(begin,end)                        【返回被截取项目的新数组】
splice()   数组删除splice(第几个开始,要删除个数)   【返回被删除项目的新数组,会影响原原数组】

数组排序 

<script>
		//对数组本身排序的方法
		var arr = [1,2,3,4,5];
		arr.reverse();//颠倒数组中元素的顺序
		console.log(arr);

		var arr1 = [13,96,4,7,21,109];
		arr1.sort(function(a,b){return a-b;}); //升序
		console.log(arr1); 
		arr1.sort(function(ab){return b-a;});//降序
		console.log(arr1); 
		
		//数组索引
		var arr2 = [1,2,3,4,5,4,6,9,10];
		console.log(arr2.indexOf(5));//4
	
		console.log(arr2.indexOf(11));//-1
		console.log(arr2.indexOf(15));//-1
		//当数组中没有该元素则输出-1
		console.log(arr2.indexOf(4));//3
		console.log(arr2.lastIndexOf(4));//5 */
		
		//数组转换为字符串
		var arr3 = [1,2,3,4,5,4,6,9,10];
		console.log(arr3.join('-'));
		</script>

 数组降重

<script>
			var arr = [1, 2, 3, 4, 5, 4, 6, 5, 1];
			function deduplication(arr){
				var newArr = [];
				for (var i = 0; i < arr.length; i++) {

					if (newArr.indexOf(arr[i]) === -1) {
						newArr.push(arr[i]);
					}
				}
				return newArr;
				}
				console.log(deduplication(arr));
			
		</script>

***字符串对象

三个特殊引用类型:String、Number、Boolean
基本包装类型就是把简单数据类型包装成复杂数据类型,这样基本数据类型就有了属性和方法。
字符串有不可变性(只改变地址,不改变原有内存。大量拼接时会产生效率问题)

根据字符串返回位置:
indexOf('要查找的字符',开始的位置)   【找不到-1】
lastindexOf()              【从后往前找,只找第一个匹配的】

查找字符串中出现最多的字符以及个数

<script>
			var str = 'abcoefoxyozzopp';
			var obj = {};
			for (var i = 0; i < str.length; i++) {
				var char = str.charAt(i);
				if(obj[char]){
					obj[char]++;
				}else{
					obj[char]=1;
				}
			}
			console.log(obj);
			var max = 0;
			var char1 = '';
			for(var k in obj){
				if(obj[k] > max){
					max=obj[k];
					char1=k;
				}
			}
			console.log('出现最多的字符是'+char1);
			console.log('出现了'+max+'次');
		</script>


根据位置返回字符:
charAt(index) 返回指定位置的字符

charCodeAt(index)  获取指定位置处字符的ASCII码

str[index] 获取指定位置处字符 (等效于charAt())

---------------------------------------------------------------------------------------------------------------------------------

concat(str1,str2,str3...)

substr(start,end)截取
slice()截取 end取不到
substring()截取 end取不到 不接受负值


replace(被替换的字符串,要替换为的字符串)方法:字符串替换
split("分割字符"):用于切分字符串,将字符串切分为数组

简单数据类型:存储时是存储值本身
复杂数据类型:存储时存地址(即引用)
栈:存储简单类型
堆:存储复杂类型
简单类型传参:函数的形参可以看做是一个变量,把简单类型传给形参的时候,直接调用栈
复杂类型传参:把引用类型传给形参的时候,其实是把变量在栈空间保存的堆地址赋值给形参,形参和实参保存同一个堆地址,所以操作的是同一个对象

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值