常用数组、字符串的方法(详解)
1、indexOf( 数组 || 字符串 ); 作用:返回数组中某个指定元素的位置 (下标)
(‘item’,[‘start’]) 两个参数:
(1):item: 必选、查找的元素。
(2) :start: 可选参数,规定在字符串中开始检索的位置,它的合法取值是
StringObject.legth-1如省略该参数,则从字符串首字符开始检索。
返回值: Number类型 元素在数组中的位置,如果没有搜索到则返回 -1 。
兼容:所有主流浏览器都支持 indexOf()方法,IE8及以下不支持该方法
(‘start’,[‘end’]) 两个参数 :
start:参数start是截取的开始数组索引
end :可选参数end是你要截取的最后一个字符的 位置值 加上 1 。
(1) :如果传入的参数是一个,那么将从参数一的索引位置开始截取,一直到数组尾;
(2) :如果传入的参数是一个,并且是一个负数的话,那么他会从数组的后面开始截取;
(3) :如果传入的参数是一个,并且是一个负数的话,并且它的绝对值大于或等于数组的 length ,那么他会截取整个数组。
(4) :如果两个参数都是负数的话,前面的参数小于后面的参数。
注:位置是固定好的,从左往右找,不包含结尾位置的字符。
3、substr(); 作用:在字符串中抽取从 start 下标开始的指定数目的字符。
(start,length)两个参数:
start:必须参数、必须是数值。如果是负数,那么该参数声明从字符串的尾部开始算起的位置。
length:必须参数、子串中的字符数。必须是数值。如果省略了该参数,那么返回从 stringObject 的开始位置到结尾的字串
返回值:一个新的字符串。不改变原字符串。
注:ECMAscript 没有对该方法进行标准化,因此反对使用它。
var str="I Love You !"
alert(str.substr(2,3));
alert(str);
(start,stop) 两个参数:
start:必需。一个非负的整数,规定要提取的子串的第一个字符在 stringObject 中的位置。
stop:可选。最后一个被提取的字符,不包含最后一个。
返回值:一个新的字符串。不改变原字符串。
注:与 slice() 和 substr() 方法不同的是,substring() 不接受负的参数。
var str="I Love You !";
alert(str.substring(2,3));
alert(str);
(‘start’,‘deleteCount’,‘item…’) 三个参数
:start是从数组元素删除开始的位置;
:deleteCount删除元素的个数;
:item替换删除掉的元素(可以是多个元素);
返回值:被删除掉的元素。
(‘separator’,‘limit’) 两个参数
: separator参数可以使一个字符串或一个正则表达式;
:limit限制被分割的片段数量;
slice() 、 splice() 、 split() 区别:
slice() 和 split() 改变的都是副本,splice() 返回的修改后的内容。
语法: for(变量 in 对象)
{
执行的代码;
}
判断一个对象是否可以用for…in 来穷举: propertyIsEnumerable();
(‘proName’)一个参数 :
proName一个属性名称的字符串的值。
返回值:Boolean类型 true表示可以穷举
false表示不可以穷举
(‘newEleament1’,[‘newEleament2’],[‘newEleament3’])多个参数
:newEleament1 添加的第一个参数。
:newEleament2 添加的第二个参数。
:newEleament3 添加的第三个参数。
返回值:Number 返回数组的新长度;
(‘newEleament1’,[‘newEleament2’],[‘newEleament3’])多个参数
: newEleament1 添加的第一个参数。
:newEleament2 添加的第二个参数。
:newEleament3 添加的第三个参数。
返回值:Number 返回数组的新长度;
兼容:无法兼容IE浏览器。
返回值:返回最后被删除的一个元素;
注:如果数组已为空,不改变数组的长度,返回undefiend;
没有参数
返回值:返回最后一个被删除的值;
注:如果数组为空,shift()不做任何操作;返回undefined;
(‘arrX1’,‘arrX2’,[‘arrX3’])多个参数:
返回值:不会改变现有数组,只会返回一个连接的数组的一个副本。
var ccc =['q','3','e'];
var ccc2 =['q','3','e'];
console.log(ccc.concat(ccc2));
([‘separator’])一个参数:
separator:指定要使用的分隔符。如果省略默认为逗号为分隔符。
返回值:一个字符串,该字符串是把数组中的所有元素转换为字符串类型。,再通过指定的分隔符连接起来。
([‘sortby’])一个参数:
sortby:规定排序顺序,必须是函数。
返回值:对数组的引用,在原数组上排序,不生成副本。
如果调用该方法没有参数,则按照字母顺序进行排序。跟准确的来说是按照字符集编码来排序的。要实现这一点要先把数组的元素都变成字符串,以便进行比较
2> 如果按照其他标准来排序,则需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。
比较函数应该具有两个参数a和b,其返回值如下:
. 若a<b ,则排序后的数组中a应该出现在b的前面,则返回一个小于0的值。
. 若a==b ,则返回0。
. 若a>b ,则返回一个大于0的值。
返回值:对数组的引用,数组在原数组上进行排序,不生成副本。
function sortNumber(a,b)
{
return a-b; //第一个参数减第二个参数:升序
//第二个参数减第一个参数:降序
}
alert(Number2.sort(sortNumber));
(‘index’)一个参数:
index表示字符串中某个位置的数字。即字符串的下标。
注:如果index不在0—string.length之间,该方法返回一个空字符串。
返回值:查找的字符。
操作符应该仅仅用来比较来自同一个 JavaScript 上下文的自定义对象。 正如 typeof 操作符一样,任何其它的用法都应该是避免的。
(‘index’)一个参数: index表示字符串中某个字符的下标。
注:如果字符串的下标大于等于字符串的长度,则返回一个NaN.
(‘numX’,‘numX’,‘numX’…)多个参数:
numX 是Unicode 值,即要创建的字符串中的字符的 Unicode 编码。
返回值:返回一个字符串。
注:该方法是String的静态方法,字符串中的每个字符串都是由单独的数字Unicode编码。
它不能作为您已创建的 String 对象的方法来使用。因此它的语法应该是
String.fromCharCode()。
var arr="我爱你";
arr.charCodeAt(1);
console.log(arr.charCodeAt(1));
String.fromCharCode('29233');
console.log(String.fromCharCode('29233'));
(‘searchvalue’,‘regexp’)两个参数(取其中一个):
searchvalue规定要检索的字符串。
regexp规定要匹配的模式RegExp对象。如果该参数不是RegExp对象,则需要首先把它传递给RegExp构造函数
将其转换为RegExp对象。
返回值:1、如果是检索指定的值,则返回指定值的下标。
2、如果没有找到检索的值,则返回null。
3、如果找到了一个或多个匹配子串,则返回一个数组。不过全局匹配返回的数组的内容与前者大不相同,它的数组元素中存放的是 stringObject 中所有的匹配子串,而且也没有 index 属性或 input 属性。
4、如果没找到则返回null。
var str="1 plus 2 equal 3"
document.write(str.match(/\d+/g))
console.log(str.match(/\d+/g));
语法:stringObject.replace(regexp/substr,replacement)
regexp/substr规定子字符串或要替换的模式的RegExp对象。
replacement规定替换文本或生成替换文本的函数。
返回值:替换之后的一个新的字符串。
没有参数
返回值:一个新的字符串,String里面的小写字符全变成大写的。不改变原有字符串。
var str="fefefJJLKJKLJ";
alert(str.toUpperCase());
alert(str);
没有参数
返回值:一个新的字符串,String里面的大写全转换成小写字母。不改变原字符串。
var str="fefefJJLKJKLJ";
alert(str.toLowerCase());
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器