数组对象和字符串对象

本文介绍了JavaScript中数组对象的检测、元素操作、排序、转换为字符串的方法,以及字符串对象的创建、查找位置、返回字符和操作方法。通过实例展示了如何使用这些功能,包括查找数组中特定值的索引和频率,以及判断用户名的合法性等。
摘要由CSDN通过智能技术生成

一、 数组对象

1.数组类型检测

在开发中,有时候需要检测变量的类型是否为数组。数组检测有两种常用的方式,分别是instanceof运算符和使用Aarray.isArray()方法

以下是示例代码

var arr=[];
var obj={}
//第一种方式
console.log(arr instanceof Array)//输出结果:true
console.log(obj instanceof Array)//输出结果:false
//第二种方式
console.log(Array.isArray(arr))//输出结果:true
console.log(Array.isArray(obj))//输出结果:false

注意:如果检测结果为TRUE,表示给定的变量是一个数组,如果检测结果是FALSE,或在数组的末尾或开头移出数组元素。

2.添加或删除数组元素

在这里插入图片描述
注意:push()和unshift()方法的返回值是新数组的长度,而pop()和shift()方法返回的是移出的数组元素

代码演示:

var arr=['Rose','Lily']
console.log('原数组:'+arr)
var last=arr.pop()
console.log('在末尾移出元素:'+last+'-移出后数组:'+arr)
var len=arr.push('Tulip','Jasmine')
console.log('在末尾额添加元素长度变为;'+len+'-添加后数组:'+arr)
var first=arr.shift()
console.log('在开头移出元素:'+frist+'-移出后数组:'+arr)
len=arr.unshift('Balsam','sunflower')
console.log('在开头添加元素后长度变为:'+len+'-添加后数组:'+arr)

接下来我们通过一个案例来演示数组对象的使用

var arr=[1500,1200,2000,2100,1800]
var newArr=[]
for (var i =0;i<arr.length;i++){
	if (arr[i]<2000){
		newArr.push(arr[i])
		}
	}
console.log(newArr)	

3.数组排序

方法名功能描述
reverse()颠倒数组中元素的位置,该方法会改变原数组,返回新数组
sort()对数组的元素进行排序,该方法会改变原数组,返回新数组

注意:reverse()和sort()方法的返回值是新数组的长度

//反转数组
var arr=['red','green','blue']
arr.reverse()
console.log(arr)
//数组排序
var arr1=[13,4,77,1,7]
arr1.sort(function(a,b){
	return b-a
})
console.log(arr1)

4.数组索引

在开发中,若要查找指定的元素在数组中的位置,则可以利用Array对象提供的检索方法

方法名功能描述
indexOf()返回在数组中可以找到给定值的第一个索引,如果不存在,则返回-1
lastIndexOf()返回指定元素在数组中的最后一个索引。如果不存在则返回-1

ps:上述方法中,默认都是从指定数组索引的位置开始检索,并且检索方式与运算符“===”相同,即只有全等时才会返回比较成功的结果
lastIndexOf()方法用于在数组从指定下标位置检索到最后一个给定值的下标。与indexOf()检索方式不同的是,lastIndexOf()方法默认逆向检索,即从数组的末尾向数组的开头检索

5.数组转换为字符串

方法名称功能描述
toSring把数组转换为字符串,逗号分隔一项
join(‘分隔符’)将数组的所有元素连接到一个字符串中
//使用toString
var arr =['a','b','c']
console.log(arr.toString())
//使用join()
console.log(arr.join())
console.log(arr.join(''))
console.log(arr.join('_'))

从上述代码可知,join()和toString()方法可将多维数组转为字符串,默认情况下使用逗号连接。不同的是,join()方法可以指定连接数组元素的符号。另外,当前数组元素为undefined、null或空数组时,对应的元素会被转换为空字符串

6.其他方法

方法名功能描述
fill()用一个固定值填充数组中指定下标范围内的全部元素
splice数组删除,参数为splice(第几个开始,要删除个数),返回被删除项目的新数组
slice数组截取,参数为slice(begin,end),返回被截取项目的新数组
concat()连接两个或多个数组,不影响原数组,返回一个新数组
var url ='http://www.martinhan.com/login?name=zs&age=18'
function getnew(url){
var index=url.indexof('?')+1
var a=url.substr(index)
console.log(a)
var arr=a.split('&')
var o={}
for(var i=0;i<arr.length;i++){
var newarr=arr[i].split('=')
o[newarr[0]]=newarr[1]
}
return o
}
consoloe.log(getnew(url))

二、字符串对象

1.字符串对象的使用

字符串对象使用new String()来创建,在String构造函数在中传入字符串,就会在返回的字符串对象中保存这个字符串

var str=new String('apple')
console.log(str)
console.log(str.length)

注意:虽然JavaScript基本包装类型的机制可以使普通变量也能像对象一样访问属性和方法,但它们并不属于对象类型

2.根据字符返回位置

方法作用
indexOf(search Value)获取search Value在字符串首次出现的位置
lastindexOf(search value)获取search value在字符串中最后出现的位置

代码演示

var str='HelloWorld'
str.indexOf('0')
str.lastindexOf('b')

通过案例进行演示,在一组字符串中找到所有指定元素出现的位置以及次数

var str='Hello World,Hello javascript'
var index=str.indexOf('o')
var num=0
while(index !=-1){
	console.log(index)
	index=str.indexOf('o',index+1)
	num++
}
console.log('o出现的次数是:'+num)

3.根据位置返回字符

成员作用
charAt(index)获取index位置的字符位置从0开始计算
charCodeAt(index)获取index位置的字符ASCII码
str[index]获取指定位置处的字符(HTML5新增)

4.字符串操作方法

成员作用
concat(str1,str3,str3)连接多个字符串
slice(start,[end])截取从start位置到end位置之间的一个子字符串
substring(start[,end])截取从start位置到end位置之间的一个子字符串,基本和slice相同,但是不接收负值
substr(start[,length])截取从start位置到length长度的子字符串
toLowercase()获取字符串的小写形式
toUpperCase()获取字符串的大写形式
split([separator[.limit])使用separator分隔符将字符串分隔成数组,limit用于限制数量
replace(str1,str2)使用str2替换字符串中的str1,返回替换结果,只会替换第一个字符

【案例】判断用户名是否合法

var name=prompt('请输入用户名')
if(name.length<3||name.length>10){
	alert('用户名长度必须在3~10之间')}
else if(name.toLowerCase().indexOf('admin')!==1){
	alert('用户名中不能包含敏感词:admin')}
else{
	alert('恭喜您,该用户名可以使用')}	
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值