Javascript中数组和字符串方法的比较
在前面的话字符串和数组有许多相似之处。它们有很多方法和相似性,但它们是不同的。字符串是不可变的值,因此它们可以被视为只读数组。
可转位
ecmascript5定义了一个方法来访问的特点,使用方括号和数字电缆访问字符串中的特定字符
可转位字符串的最大优势就是取代charAt()调用方括号,这是更简洁,可读性强,效率更高。不仅如此,事实上,一个字符串的行为类似于数组,使阵列的方法可以应用到一个字符串
如果参数超出范围或南,输出未定义。
hello;
console.log(STR { 0 }); / / H
console.log(STR { { 1 } }); / / E
console.log(STR {假}); / /未定义
console.log(STR { 1 }); / /未定义
console.log(STR {南}); / /未定义
console.log(STR { }); / /错误
var arr = { e、H、L、L、O };
console.log(ARR { 0 }); / / H
console.log(ARR { { 1 } }); / / E
console.log(ARR {假}); / /未定义
console.log(ARR { 1 }); / /未定义
console.log(ARR {南}); / /未定义
console.log(ARR { }); / /错误
转型
字符串可以使用拆分()方法转换成数组,并且数组可以通过联接()方法转换成字符串。
{拆分()}
拆分()方法根据指定的分隔符将字符串划分成多个字符串,并将结果放入数组中。分隔符可以是字符串或正则表达式。
这个方法可以接受(可选)为指定数组的大小二参数。如果第二个参数是在0-array.length范围值,输出根据指定的参数和输出结果。
如果指定的分隔符不出现在字符串中,则原始字符串的值以数组的形式返回。
VaR ColorText =红色,蓝色,绿色,黄色的;
console.log(colortext.split()); / / {R
console.log(colortext.split()); / / 红 {
console.log(colortext.split(2)); / / 红 {
console.log(colortext.split(6)); / / 红 {
console.log(colortext.split(-)); / / {红色,蓝色,绿色,黄色}
console.log(colortext.split( / / / / {));红
console.log(colortext.split( / / / /));{R
console.log(colortext.split( / { } + ^ , / / /));将一个逗号分隔字符串到外面
{联接()}
join()方法可以使用不同的分隔符来建设这个字符串。连接()方法只接收一个参数,它充当分隔符的字符串,然后返回包含所有数组项的字符串。
如果没有向联接()方法传递值,则使用逗号作为分隔符。
var a = {1,2,3};
console.log(a.join()); / / '1,2,3
console.log(a.join(')); / /‘2 3'
console.log(a.join(')); / / '123
var b =新阵(10);
B.join(-); / / --------- ',9个连字符组成的字符串
如果数组中某个项的值为null或未定义,则该值将在连接()方法返回的结果中表示为空字符串。
var颜色= { 1,未定义,2,NULL,3 };
console.log(colors.join()); / / 1,2, 3
由于字符串是对象数组,所以也可以使用连接()方法。
console.log(array.prototype.join.call(你好)); / / h-e-l-l-o
var str =测试;
var arr = str.split('') / / {T
console.log(arr.join(-) / / 't-e-s-t);
拼接
字符串和数组有一个共同的拼接方法concat()
VaR值=你好;
console.log(value.concat(世界的)); / / 'helloworld
console.log(value.concat({世界' })); / / 'helloworld
console.log(value.concat({ } } {世界)); / / 'helloworld
VaR值= {你好};
console.log(value.concat(世界的)); / / 你好 {
console.log(value.concat({世界' })); / / 你好 {
console.log(value.concat({ } } {世界)); / / 你好 {
建立
两字符串和数组的创建方法切片(),分别创建子和子阵
切片()方法根据当前数组(或字符串)中的一个或多个项创建一个新数组(或字符串),接受一个或两个参数,即返回该项的开始位置和结束位置,最后返回到新数组(或字符串)中。
切片(start,末尾)方法接受两个参数开始和结束,返回数组(或字符串)从起始位置到(但不是结束)一个子数组位置(或字符串);如果结束未定义或不返回从开始位置到数组(或字符串)结束时的所有条目
如果开始为负,则开始= max(长度+开始,0)
如果结束为负,则结束= max(长度+结束,0)
开始和结束无法交换位置。
风险值= { 12345 };
console.log(numbers.slice(2)); / / {他}
console.log(numbers.slice(2,未定义)); / / {他}
console.log(numbers.slice(2,3)); / / { 3 }
console.log(numbers.slice(2,1)); / / { }
console.log(numbers.slice(3) / / 3 + 5 = 2,{他});
console.log(numbers.slice(- 8)); / /最大(5±8,0)= 0 } { 1,2,3,4,5
console.log(numbers.slice(0,3); / / 3 + 5 = 2,{1,2})
console.log(numbers.slice(- 2,- 1)); / / 2 + 5 = 3;1 + 5 = 4;{ 4 }
VaR StringValue =你好世界;
console.log(stringvalue.slice()); / /你好世界
console.log(stringvalue.slice(2)); / / 'llo世界
console.log(stringvalue.slice(20)); / /
console.log(stringvalue.slice(2,未定义)); / / 'llo世界
console.log(stringvalue.slice(2,5)); / / 'llo
console.log(stringvalue.slice(2,20) / /);
console.log(stringvalue.slice(-2,2)); / /
console.log(stringvalue.slice(- 2,- 20) / /);
console.log(stringvalue.slice(- 20)); / / 'ld
console.log(stringvalue.slice(- 20,2)); / /他
Console.log (stringValue.slice (-20, -2)); //'hello wor'
位置
两字符串和数组有两种方式找到的位置:()和()返回字符串。括号{ }相反的位置的方法和阅读方法,一是通过搜索索引,通过索引搜索词
indexOf(){ }
IndexOf(搜索、启动)方法接收搜索和启动两参数,返回搜索第一的位置,并返回1如果没找到。
字符串中的搜索参数将调用字符串()函数转换,参数的字符串值被转换为字符串;数组中的搜索参数是使用严格相等运算符(= =)比较。
无论是数组还是字符串,第二个参数开始将隐式调用数字()转换函数,将起始非数值(除了未定义的)转换为数值。如果参数被忽略或参数未定义且为南,起始= 0。
如果起始参数为负,则字符串的处理将为start=0;数组的处理为start = max(0,start +长度)。
字符串值=你好世界;
console.log(String.IndexOf('ld ')); / / 9
console.log(String.IndexOf('ld,undefined)); / / 9
console.log(String.IndexOf('ld ',楠)); / / 9
console.log(String.IndexOf('ld ',1)); / / 9
console.log(String.IndexOf('ld ',10)); / / 15
console.log(String.IndexOf('ld,{ 10 })); / / 15
console.log(String.IndexOf(真实的,{ 10 })); / / 1
console.log(String.IndexOf(假,{ 10 })); / / 1
var arr = {'a',B,C,D,E,A,B};
console.log(arr.indexof('a',undefined)); / / 0
console.log(arr.indexof(A,楠)); / / 0
console.log(arr.indexof(A,1)); / / 5
console.log(arr.indexof('a',真)); / / 5
console.log(arr.indexof(A,1)); / /最大(0,- 1 + 7)= 6;1
console.log(arr.indexof(A,5)); / /最大(0,- 5 + 7)= 2;5
console.log(arr.indexof(A,50)); / /最大(0,- 50 + 7)= 0;0
字符串(){ }
相反,indexOf()方法,这个字符串()方法是从右到左
这个字符串(搜索、启动)方法接收搜索和启动两参数,返回要查找的字符串的第一个位置,并返回1如果没找到。
类似地,字符串中的搜索参数将调用字符串()函数转换,参数的字符串值被转换为字符串;数组中的搜索参数是使用严格相等运算符(= =)比较。
无论是数组还是字符串,第二个参数开始将隐式调用数字()转换函数,将开始非数值(除了未定义的)转换为数值。
如果忽略这个参数,或者参数未定义,楠,字符串的处理是开始=长度- 1;数组的处理是起始= 0。
如果起始参数为负,则字符串的处理将为start=0;数组的处理为start = max(0,start +长度)。
字符串值=你好世界;
console.log(string.lastindexof('ld ')); / / 15
console.log(string.lastindexof('ld,undefined)); / / 15
console.log(string.lastindexof('ld ',楠)); / / 15
console.log(string.lastindexof('ld ',1)); / / 1
console.log(string.lastindexof(H,1)); / / 0
console.log(string.lastindexof('w',undefined)); / / 12
console.log(string.lastindexof('ld ',10)); / / 9
console.log(string.lastindexof('ld,{ 10 })); / / 9
console.log(string.lastindexof(真实的,{ 10 })); / / 1
console.log(string.lastindexof(假,{ 10 })); / / 1
var arr = { 1,2,3,1,2,3'};
console.log(arr.lastindexof(2)); / / 4
console.log(arr.lastindexof(3)); / / 2
console.log(arr.lastindexof(0)); / / 1
var arr = {'a',B,C,D,E,A,B};
console.log(arr.lastindexof(B)); / / 6
console.log(arr.lastindexof(B,定义)); / / 1
console.log(arr.lastindexof('a',undefined)); / / 0
console.log(arr.lastindexof(B,楠)); / / 1
console.log(arr.lastindexof(B,1)); / / 1
console.log(arr.lastindexof(B,1)); / /最大(0,- 1 + 7)= 6;6
console.log(arr.lastindexof(B,5)); / /最大(0,- 5 + 7)= 2;1
console.log(arr.lastindexof(B,50)); / /最大(0,- 50 + 7)= 0;1
在上面的Javascript数组和字符串之间的比较是萧边分享你的全部内容。我希望能给你一个参考,希望你能支持它。