javascript 基础知识(四) 常用字符串/数组操作

本文详细介绍了JavaScript中字符串和数组的基本操作,包括索引访问、拼接、排序、搜索等实用方法,以及如何利用内置函数高效处理数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

字符串

Demo:   var str = "Hello World";

str[2];//下标索引     IE8及以上能用
str.charAt[2];下标索引 兼容所有浏览器
str.charCodeAt(0);//返回对应序号字符的ANSI码
String.fromCharCode(number);//返回ANSI码对应的字符
str.indexOf(‘world’);//返回对应字符位置
str.indexOf(‘w’, number);//从number位置开始查找

str.toUpperCase()//大写
str.toLowerCase()//小写

 字符串处理

stringObject.split(separator,howmany);//split() 方法用于把一个字符串分割成字符串数组。,返回数组


separator:必需。字符串或正则表达式,从该参数指定的地方分割 stringObject。
howmany:可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。

 

arrayObject.splice(index,howmany,item1,.....,itemX)//splice() 方法从 数组/字符串 中添加/删除项目,然后返回被删除的项目。

index 必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。

howmany  必需。要删除的项目数量。如果设置为 0,则不会删除项目。

item1, ..., itemX 可选。向数组/字符串添加的新项目。

返回值

包含被删除项目的新数组/字符串,如果有的话。

 stringObject.substring(start,stop);substring() 方法用于提取字符串中介于两个指定下标之间的字符。


start:必需。一个非负的整数,规定要提取的子串的第一个字符在 stringObject 中的位置。
stop:可选。一个非负的整数,比要提取的子串的最后一个字符在 stringObject 中的位置多 1。如果省略该参数,那么返回的子串会一直到字符串的结尾。
返回值:一个新的字符串,该字符串值包含 stringObject 的一个子字符串,其内容是从 start 处到 stop-1 处的所有字符,其长度为 stop 减 start。
注意:参数为负,自动调整为0

 arrayObject.slice(start,end);//slice() 方法可从已有的 数组/字符串 中返回选定的元素。
start:必需。规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。
end:可选。规定从何处结束选取。该参数是数组片断结束处的数组下标。如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。
返回值:返回一个新的数组/字符串

 数组

Demo:   var arr = [100,'hello',false,function(){},null,window];

arr.length 数组的length可读可写,字符串只可读
arr[0]     数组的下标可读可写,字符串只可读

demo:

			var arr = [];
			arr[0] = 1;
			arr[8] = '阿飞';
			console.log( arr.length );//长度为9

 

 数组方法

arr.push // push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.push("Kiwi")

arr.unshift();// 方法可向数组的开头添加一个或更多元素,并返回新的长度。

arrayObject.unshift(newelement1,newelement2,....,newelementX)

newelement1 必需。向数组添加的第一个元素。

newelement2 可选。向数组添加的第二个元素。
newelementX 可选。可添加若干个元素。

 arrayObject.pop()  //pop() 方法用于删除并返回数组的最后一个元素。

说明

pop() 方法将删除 arrayObject 的最后一个元素,把数组长度减 1,并且返回它删除的元素的值。如果数组已经为空,则 pop() 不改变数组,并返回 undefined 值。

arrayObject.shift() //shift() 方法用于把数组的第一个元素从其中删除,并返回第一个元素的值。

说明

如果数组是空的,那么 shift() 方法将不进行任何操作,返回 undefined 值。请注意,该方法不创建新数组,而是直接修改原有的 arrayObject。

arrayObject.splice(index,howmany,item1,.....,itemX)//splice() 方法从 数组/字符串 中添加/删除项目,然后返回被删除的项目。

index 必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。

howmany  必需。要删除的项目数量。如果设置为 0,则不会删除项目。

item1, ..., itemX 可选。向数组/字符串添加的新项目。

返回值

包含被删除项目的新数组/字符串,如果有的话。

 sort() 方法用于对数组的元素进行排序。

arrayObject.sort(sortby)

sortby: 可选。规定排序顺序。必须是函数

返回值

对数组的引用。请注意,数组在原数组上进行排序,不生成副本。

说明

如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。

如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下:

  • 若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。
  • 若 a 等于 b,则返回 0。
  • 若 a 大于 b,则返回一个大于 0 的值。

Demo:

<script type="text/javascript">

var arr = new Array(6)
arr[0] = "10"
arr[1] = "5"
arr[2] = "40"
arr[3] = "25"
arr[4] = "1000"
arr[5] = "1"

document.write(arr + "<br />")
document.write(arr.sort())

</script>

输出

10,5,40,25,1000,1
1,10,1000,25,40,5 //这里是按照第一个数字进行排序了

上面的代码没有按照数值的大小对数字进行排序,要实现这一点,就必须使用一个排序函数:

<script type="text/javascript">

function sortNumber(a,b)
{
return a - b
}

var arr = new Array(6)
arr[0] = "10"
arr[1] = "5"
arr[2] = "40"
arr[3] = "25"
arr[4] = "1000"
arr[5] = "1"

document.write(arr + "<br />")
document.write(arr.sort(sortNumber))

</script>

 

join() 方法用于把数组中的所有元素放入一个字符串。

元素是通过指定的分隔符进行分隔的。

arrayObject.join(separator) 

separator  可选。指定要使用的分隔符。如果省略该参数,则使用逗号作为分隔符。

返回值

返回一个字符串。该字符串是通过把 arrayObject 的每个元素转换为字符串,然后把这些字符串连接起来,在两个元素之间插入 separator 字符串而生成的。

concat() 方法用于连接两个或多个数组。

该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。

arrayObject.concat(arrayX,arrayX,......,arrayX)

arrayX  必需。该参数可以是具体的值,也可以是数组对象。可以是任意多个。

返回值

返回一个新的数组。该数组是通过把所有 arrayX 参数添加到 arrayObject 中生成的。如果要进行 concat() 操作的参数是数组,那么添加的是数组中的元素,而不是数组。

demo1:

<script type="text/javascript">

var a = [1,2,3];
document.write(a.concat(4,5));

</script>

输出: 1,2,3,4,5

demo2:

<script type="text/javascript">

var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"

var arr2 = new Array(3)
arr2[0] = "James"
arr2[1] = "Adrew"
arr2[2] = "Martin"

document.write(arr.concat(arr2))

</script>
输出: George,John,Thomas,James,Adrew,Martin

 

 

资源下载链接为: https://pan.quark.cn/s/1bfadf00ae14 华为移动服务(Huawei Mobile Services,简称 HMS)是一个全面开放的移动服务生态系统,为企业和开发者提供了丰富的工具和 API,助力他们构建、运营和推广应用。其中,HMS Scankit 是华为推出的一款扫描服务 SDK,支持快速集成到安卓应用中,能够提供高效且稳定的二维码和条形码扫描功能,适用于商品扫码、支付验证、信息获取等多种场景。 集成 HMS Scankit SDK 主要包括以下步骤:首先,在项目的 build.gradle 文件中添加 HMS Core 库和 Scankit 依赖;其次,在 AndroidManifest.xml 文件中添加相机访问和互联网访问权限;然后,在应用程序的 onCreate 方法中调用 HmsClient 进行初始化;接着,可以选择自定义扫描界面或使用 Scankit 提供的默认扫描界面;最后,实现 ScanCallback 接口以处理扫描成功和失败的回调。 HMS Scankit 内部集成了开源的 Zxing(Zebra Crossing)库,这是一个功能强大的条码和二维码处理库,提供了解码、生成、解析等多种功能,既可以单独使用,也可以与其他扫描框架结合使用。在 HMS Scankit 中,Zxing 经过优化,以更好地适应华为设备,从而提升扫描性能。 通常,ScanKitDemoGuide 包含了集成 HMS Scankit 的示例代码,涵盖扫描界面的布局、扫描操作的启动和停止以及扫描结果的处理等内容。开发者可以参考这些代码,快速掌握在自己的应用中实现扫码功能的方法。例如,启动扫描的方法如下: 处理扫描结果的回调如下: HMS Scankit 支持所有安卓手机,但在华为设备上能够提供最佳性能和体验,因为它针对华为硬件进行了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值