JS中String与Array的一些常用方法
真是恨透了这些类似于substring substr slice 要么长得像,要么就功能相近的方法。。。
1⃣️string
1.substring(start开始位置的索引,end结束位置索引) 截取字符串
截取的位置不包含结束位置的字符,只写start表示从开始位置截取到最后,end>start时,会默认以小的参数为开始位置的索引
var str='abcdefg';
str.substring(1) //bcdefg
str.substring(1,3) //bc
str.substring(3,1) //bc
输入负值时将负值变为0,并以较小数字为截取开始位置的索引
str.substing(-1,1) 等价于str.substring(0,1) //a
str.substring(1,-2) 等价于str.substring(0,1) //a
2.slice(start开始位置索引,end结束位置索引)截取字符串
基本和substring相似,但当end>start时,返回空字符串""
var str='abcdefg';
str.slice(1) //bcdefg
str.slice(1,3) // bc
str.slice(3,1) // ""
区别在参数为负数时,slice是负值与字符串的长度相加,当负值的绝对值大于字符串长度时,值变为0,当第二个参数的绝对值大于字符串长度时,返回空字符串""
str.slice(-1) 等价于str.slice(6) //g
str.slice(1,-2) 等价于str.slice(1,5) //bcde
str.slice(-2,-1) 等价于str.slice(5,6) //f str.slice(-10) 等价于str.substring(0) //abcdefg
str.slice(0,-10) // ""`
3.substr(start开始位置索引,end需要返回的字符个数)截取字符串
只传入start时,默认从start开始截取到最后一个
var str='abcdefg';
str.substr(1) //bcdefg
str.substr(1,1) //b
输入负值时 start参数与字符串的长度相加 ,end为负时参数变为0,也就是返回空字符串""
str.substr(-1) 等价于str.substr(6)//g
str.substr(-2,-3) // ''
4.charAt(index)
该方法用于返回指定index处的字符,但当index为负数或者大于字符串长度时,返回空字符串""
var str='abcdefg';
str.charAt(2) // c
str.charAt(-1) // ""
str.charAt(10) // ""
5.charCodeAt(index)
该方法用于返回指定位置的字符的 Unicode 编码。这个返回值是 0 - 65535 之间的整数。如果 index 是负数,或大于等于字符串的长度,则 charCodeAt() 返回 NaN。
var str='abcdefg';
str.charCodeAt(1) //98
str.charCodeAt(-1) //NaN
str.charCodeAt(10) //NaN
6.indexOf(string)
该方法返回字符串内第一次出现子字符串的位置。如果没有找到子字符串,则返回-1。
var str='abcdefga'
str.indexOf('a') // 0
str.indexOf('h') //-1
7.lastIndexOf(string) 倒叙查找
与indexOf相反,该方法返回字符串内最后一次出现子字符串的位置。相同的是,如果没有找到子字符串,则返回-1。
var str='abcdefga'
str.lastIndexOf('a') // 7
str.lastIndexOf('h') //-1
8.split(separator分隔符,howmany分割返回数量)
该方法用于方法用于把一个字符串分割成字符串数组。如果把空字符串 ("") 用作 separator,那么 stringObject 中的每个字符之间都会被分割。
"hello".split("") // ["h", "e", "l", "l", "o"]
"hello".split("", 3) // ["h", "e", "l"]
("2:3:4:5").split(":") //["2", "3", "4", "5"]
("|a|b|c").split("|") //["", "a", "b", "c"]
9.replace(regexp,replacement)
该方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
var str='abcdefg'
str.replace(/a/,'12345') // '12345bcdefg'
10.search(regexp)
该方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串。返回第一个与 regexp 相匹配的子串的起始位置。
var str='abcdefg'
str.search(/cde/) // 2
11.match(regexp/str)
该方法用于在字符串内检索指定的值,或找到一个或多个正则表达式的匹配,并返回一个存储了该值的数组
var str='abcdefg'
str.match('bcd') //["bcd"]
12. toLowerCase
该方法返回一个字符串,该字符串中的字母被转换成小写。
var str="Hello World!"
str.toLowerCase() //"hello world!"
13. toUpperCase
该方法返回一个字符串,该字符串中的所有字母都被转换为大写。
var str="Hello World!"
str.toUpperCase() //"HRLLO WORLD!"
14.concat()
该方法用于连接两个或多个字符串
var str1="Hello "
var str2="world!"
str1.concat(str2) // "Hello World!"
2⃣️array
1. push()
向数组的末尾添加一个或更多元素,并返回新的长度。
var arr = [1,2,3]
console.log(arr.push(4)) // 4
console.log(arr) // [1,2,3,4]
2. unshift()
向数组的开头添加一个或更多元素,并返回新的长度。
var arr = [1,2,3]
console.log(arr.unshift(4)) // 4
console.log(arr) // [4,1,2,3]
3.shift()
删除并返回数组的第一个元素
var arr = [1,2,3]
console.log(arr.shift()) // 1
console.log(arr) // [2,3]
4. pop()
删除并返回数组的最后一个元素
var arr = [1,2,3]
console.log(arr.prop()) // 3
console.log(arr) // [1,2]
6. join()
把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。
var arr = [1,2,3]
arr.join('+') //"1+2+3"
7.toString()
该方法可把数组转换为字符串,返回值与没有参数的 join() 方法返回的字符串相同。
var arr = [1,2,3]
arr.toString() // "1,2,3"
8.concat()
该方法可以连接两个或更多的数组,并返回结果。
var arr1 = [1,2,3]
var arr2 = [4,5,6]
arr1.concat(arr2) //[1,2,3,4,5,6]
9.slice(start,end)
该方法可从已有的数组中返回选定的元素。(返回一个新的数组,包含从 start 到 end (不包括该元素)的 arrayObject 中的元素。),不传参返回整个数组,传入负值(等价于负值+数组长度的位置开始)
该方法并不会修改数组,而是返回一个子数组。如果想删除数组中的一段元素,应该使用方法 Array.splice()。
var arr = [1,2,3]
arr.slice(1) // [2,3]
arr.slice(0,2) // [1,2]
arr.slice() // [1,2,3]
arr.slice(-1) // [3]
10.splice()
之所以给它加个颜色,是因为这个方法功能多,但也特容易搞混,因为它可以传三类参数,传入的参数个数不同,该方法所实现的功能也不同
参数1 添加/删除 的起始位置
参数2 要删除的项目数量。如果设置为 0,则不会删除项目。
参数3 向数组添加的新项目。(可以添加多个)
1)单纯的删除元素 (这时不用传参数3,用参数1、2控制即可)返回的是一个包含被删除元素的数组,如果参数1为负值,则相当于从参数1+数组长度的位置开始删除。
var arr = [1,2,3,4,5]
arr.splice(1,2) // [2,3]
arr.splice(-2,2) // [4,5]
2)单纯的添加元素 (这时参数2要传入0)返回值是一个空数组,如果参数1为负值,则相当于从参数1+数组长度的位置开始添加。
var arr = [1,2,3,4,5]
arr.splice(1,0,6); // []
console.log(arr ) // [1, 6, 2, 3, 4, 5]
arr.splice(-1,0,6); // []
console.log(arr ) // [1,2, 3, 4, 6,5]
3) 删除元素并添加元素 返回值是包含新被删除元素的一个数组,如果参数1为负值,则相当于从参数1+数组长度的位置开始删除/添加。
var arr = [1,2,3,4,5]
arr.splice(1,3,6,7,8); // [2,3,4]
console.log(arr ) // [1, 6, 7, 8, 5]
arr.splice(-1,3,6,7,8); // [5]
console.log(arr ) // [1, 2,3,4,6,7,8]
11. reverse()
该方法用于颠倒数组中元素的顺序。并返回颠倒顺序后的数组
var arr = [1,2,3,4,5]
arr.reverse() // [5, 4, 3, 2, 1]
12.sort()
该方法用于对数组的元素进行排序。
如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。
var arr = ["George","John","Thomas","James","Adrew","Martin"]
arr.sort() //["Adrew", "George", "James", "John", "Martin", "Thomas"]
如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下:
- 若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。
- 若 a 等于 b,则返回 0。
- 若 a 大于 b,则返回一个大于 0 的值。
如果数组里全是数字,想按从大到小/从小到大排序的话,需要用到一个比较函数
以从小到大排序为例
var arr = [10,2,52,37,60]
function sortNumber(a,b)
{
return a > b
}arr.sort(sortNumber) // [2, 10, 37, 52, 60]
13.valueOf()
(这个方法会在下一篇js中object常用属性和方法里详细解释,地址http://www.cnblogs.com/aaronhan1215/p/6772800.html)
方法返回 Array 对象的原始值。
var arr = [1,2,3,4,5]
arr.valueOf(); // [1,2,3,4,5]
JS中String与Array的一些常用方法的更多相关文章
- JS中String类型转换Date类型 并 计算时间差
JS中String类型转换Date类型 1.比较常用的方法,但繁琐,参考如下:主要使用Date的构造方法:Date(int year , int month , int day)<script& ...
- Js中String转int
Js中String转int 方案一代码: Number(str) 方案二代码: //parseInt 方法都有两个参数, 第一个参数就是要转换的对象, 第二个参数是进制基数, 可以是 2, 8, 10 ...
- JavaScript基础精华03(String对象,Array对象,循环遍历数组,JS中的Dictionary,Array的简化声明)
String对象(*) length属性:获取字符串的字符个数.(无论中文字符还是英文字符都算1个字符.) charAt(index)方法:获取指定索引位置的字符.(索引从0开始) indexOf(‘ ...
- Javascript中String、Array常用方法介绍
string和array作为javascript内置对象,其中许多方法无论是在开发过程中,还是在面试的时候都有机会被面试官问到,这里对经常用到的方法做一个介绍,这些方法都有过很多的实际应用场景,所以对 ...
- js中String.prototype.format類似于.net中的string.formitz效果
String.prototype.format = function(args) { if (arguments.length>0) { var result = this; if (argum ...
- JS中字符串与数组的一些常用方法
真是恨透了这些类似于substring substr slice 要么长得像,要么就功能相近的方法... 1⃣️string 1.substring(start开始位置的索引,end结束位置索引) 截 ...
- JS中集合对象(Array、Map、Set)及类数组对象的使用与对比
原文地址 在使用js编程的时候,常常会用到集合对象,集合对象其实是一种泛型,在js中没有明确的规定其内元素的类型,但在强类型语言譬如Java中泛型强制要求指定类型. ES6引入了iterable类型, ...
- JS中集合对象(Array、Map、Set)及类数组对象的使用与对比(转载)
在使用js编程的时候,常常会用到集合对象,集合对象其实是一种泛型,在js中没有明确的规定其内元素的类型,但在强类型语言譬如Java中泛型强制要求指定类型. ES6引入了iterable类型,Array ...
- JS中的函数,Array对象,for-in语句,with语句,自定义对象,Prototype
一)函数 A)JS中的函数的定义格式: function add(a,b) { var sum = a+b; document.write("两个数的和是:" + sum); // ...
随机推荐
- javascript之快速排序
快速排序思想其实还是挺简单的,分三步走: 1.在数组中找到基准点,其他数与之比较. 2.建立两个数组,小于基准点的数存储在左边数组,大于基准点的数存储在右边数组. 3.拼接数组,然后左边数组与右边数组 ...
- c++11中关于std::thread的join的思考
c++中关于std::thread的join的思考 std::thread是c++11新引入的线程标准库,通过其可以方便的编写与平台无关的多线程程序,虽然对比针对平台来定制化多线程库会使性能达到最大, ...
- C#编程任务: 把工作交给别人并等待其执行完成
生活中有这样的场景: 我有一件事情需要别人帮忙去办, 但是别人也很忙呀, 所以我只能把任务记载他的任务清单上, 等他一个个扫下来扫到我的并且完成之后再来告诉我. 这其实是一个多线程的问题. 我是线程A ...
- (转)IHS配置安全漏洞: 支持不推荐使用的 SSL 版本、在降级的旧加密上填充 Oracle、检测到 RC4 密码套件、支持弱 SSL 密码套件、 重构 RSA 导出键(又称为 FREAK)
原文:https://blog.csdn.net/lyd135364/article/details/52179426 都是由于ihs配置中支持不推荐使用的ssl版本和弱密码套件引起的. 只要在配置文 ...
- c++之window.h
在c++中引入window.h头文件. Sleep函数,此函数接受一个时间参数,单位是ms.即使得程序在一段时间后继续运行.如下: 在hello输出之后3000ms,才会继续输出world字符串. M ...
- ElasticSearch入门3: Spring Boot集成ElasticSearch
第一步:创建项目elasticsearch 编写pom文件 <?xml version="1.0" encoding="UTF-8"?> <p ...
- 关于 ASP.NET Web 应用中 async/await 注意问题
System.NullReferenceException: Object reference not set to an instance of an object. at System.Web.T ...
- 全网最详细的Sublime Text 3的设置字体及字体大小(图文详解)
不多说,直接上干货! 前期博客 全网最详细的Windows里下载与安装Sublime Text *(图文详解) 全网最详细的Sublime Text 3的激活(图文详解) 你也许是如下的版本: 点 ...
- 分享 : 警惕MySQL运维陷阱:基于MyCat的伪分布式架构
分布式数据库已经进入了全面快速发展阶段.这种发展是与时俱进的,与人的需求分不开,因为现在信息时代的高速发展,导致数据量和交易量越来越大.这种现象首先导致的就是存储瓶颈,因为MySQL数据库实质上还是一 ...
- mybatis插入数据库 返回主键
传递参数为对象TaskEntity, 返回主键结果为Integer 与 主键 task_id 的类型一致即可 <insert id="addTask" parameterTy ...