javascript字符串和数组处理方法总结

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ka_qimoduo/article/details/52756208

String 对象

String对象的length属性指定了这个字符的个数。String类定义了一些操作字符串的方法,但是注意,javaScript的字符串是不可改变的,所有的方法都不允许改变这个字符串的内容,都是返回一个全新的字符串,没有修改原字符串。

属性

1、constructor 对创建该对象的函数的引用。


2、length

String.length属性是一个只读的整数,指明指定的字符串的字符个数,字符串的length属性不会在for\/in循环中枚举,也不可通过delete操作符删除。


String.length;

3、prototype 允许您向对象添加属性和方法。


方法

1、charAt(n)

取得一个字符串中第“n”个字符。如果参数n不在0~string.length之间,则返回一个空字符串。

string.charAt(n);

2、charCodeAt(n)

取得一个字符串中第n个字符的Unicode编码,返回值是一个16位的,值在0~65535之间的整数,如果n是一个负数或者是大于字符串长度,则返回NaN。

string.charCodeAt(n);

3、concat(string1,string2, …)

连接字符串,返回一个由每个参数链接而成的新的字符串,原来的成员本身并没有改变。此方法与数组的concat方法类似。使用“+”操作符来执行字符串链接更简单方便一些。

string.concat(string1,string2,...)

4、fromCharCode(c1,c2,c3,c4,…)

将传入的Unicode编码转换成相应的字符串,参数是一个或者多个整数,返回一个新的字符串。和其他操作字符串的方法不同的是,fromCharCode()是String()构造函数的一个属性,并不是字符串或者String对象的方法。

String.fromCharCode(c1,c2,c3,c4,...)

5、indexOf(substring,start)

在字符串中搜索指定的字串substring,从前到后搜索,其中第二个参数为可选参数(一个整数),如果有第二个参数,则从第二个参数指定的位置开始搜索,如果不存在第二个参数,则默认从索引为0的位置开始搜索。如果搜索到了字串则返回字串第一次出现的位置,如果没有搜索到,则返回-1。

String.indexOf(substring,start);

6、lastIndexOf(substring,start)

从后向前搜索字串,如果存在第二个参数,则从第二个参数指定位置向前搜索,返回字串最后一次出现的位置,如果没有搜索到字串,则返回-1,其他同indexOf;

String.lastIndexOf(sunstring,start);

7、match(regexp)

查找找到一个或多个正则表达式的匹配结果。

参数regexp为一个指定要匹配模式的RegExp对象。如果参数不是一个RegExp对象,则他将先被传入RegExp()构造函数,转换为RegExp对象。

方法返回一个匹配结果的数组。数组的内容取决于正则对象是否设置了全局g属性。如果没有“g”属性,match()将只在字符串中执行一次匹配。如果没有找到匹配结果,返回null。反之,将返回一个包含他所发现匹配结果信息的数组。该数组的元素0为匹配文本,剩下的元素为匹配正则表达式中的圆括号字表达式的文本。除了这些常规的数组元素,这个返回结果还有两个额外的对象属性。其中index属性指明了匹配文本在string中的开始位置,input属性则是对该string本身的引用。

如果有“g”标志,则match将进行一次全局搜索,找到所有匹配的字串,如果没找到则返回null,如果找到一个或者多个则返回一个数组。但是,全局匹配和费全局匹配返回的数组内容完全不同。在全局匹配的情况下,数组元素包含string中每一个匹配字串,返回的数组也没有index和input属性。对于全局匹配,match不会提供关于圆括号字表达式的信息,也不会记录每个字串在string中的位置。如果想要在全局搜索时取得这些信息,可以使用RegExp.exec();

string.match(regexp);

8、replace(regexp,replacement)

第一个参数是要替换的模式的RegExp对象。如果这个参数是一个字符串,他将用作一个要搜索的直接量文本模式,不会先转化为RegExp对象。第二个参数为要替换的文本,或者一个函数,函数在调用时生成对应的替换文本。返回一个第一个匹配位置或所有匹配都被替换的字符串。是否全局替换,要看正则对象是否有全局属性“g”。

string.replace(regexp,replacement);

9、search(regexp)

传入一个RegExp对象,按这个对象在指定的字符串中查找,如果参数不是一个RegExp,此参数将被传入RegExp()构造函数 ,转换为一个正则对象。search总会从字符串开头开始查找,总会在找到第一个符合条件的字符串后,返回匹配字符串第一个字符的位置,如果没有找到,则返回-1。

string.search(regexp);

10、slice(start,end)

传入两个参数,第一个为开始字符串索引,第二个为结束字符串索引,两个参数都可为负数,为负数时表示从字符串尾部开始计算(最后一个字符的索引为-1)。返回一个新的字符串,内容为string中自start位置开始,并且包含start位置,但不包含结束位置的字符串。String的slice(),sunbstring()以及substr()都返回一个字符串的指定部分,不同的是slice更灵活,参数可以为负,substr的第二个参数为长度值。String.slice()和Array.slice()非常类似。

string.slice(start,end);

11、split(delimiter, limit)

将一个字符串切分为一个由字符串组成的数组。第一个参数为切分处的字符串或者正则表达式,第二个参数为指定返回数组的长度,如果不指定第二个参数,则切分整个字符串,不论有多长。String.split()是Array.join方法的反方法。

string.split(delimiter, limit);

12、substr(start,length)

截取字符串的一部分,从索引为start处开始,截取长度为length的子串并返回。如果不指定第二个参数,则截取从开始位置到最后的字符串。这个方法因为在IE浏览器中,传入第一个参数为负数时会有bug,已经启弃用,不再是标准的一部分了。

string.substr(start,length);

13、substring(from,to)

从索引为from处开始,截取到索引为to的地方,包含from但是不包含to,substring和slice的区别是不接受为负的参数。如果from大于to,则默认调换位置后才做处理。

string.sunbstring(from,to);

14、toLowerCase()

将一个字符串转化为小写,大部分情况下同toLocalLowerCase(),只有在遇到土耳其语这样的有本地化映射的语言时才会有所不同。

string.toLowerCase()

15、toUpperCase()

将一个字符串转化为大写,大部分情况下同toLocalUpperCase()。

string.toUpperCase();

16、trim()

去掉字符串开头和结尾的空白字符,返回一个全新的字符串。

string.trim();

Array 对象


属性

1、constructor 返回对创建此对象的数组函数的引用。

2、length 设置或者返回数组元素的数目。

3、prototype 使您有能力向对象添加属性和方法。

方法

1、concat(value,…) 连接两个或更多的数组,并返回结果。

该方法会将传入的一个或者多个参数衔接到array中得到一个新数组并返回,不会修改原来的数组。如果多个参数中,参数本身就是数组,则会将该数组中的元素先接到array中,而不是数组本身。但是,如果参数本身是一个数组,这个数组里面的元素又是一个数组a,则会将这个数组a作为一个整体衔接到array数组中。

array.concat(value,...);

2、indexOf() 返回某个指定的字符串值在字符串中首次出现的位置。

同ECMAScript5中。


3、join(separate) 把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。

参数是可选的,如果不传参数,默认参数为逗号(,)。join方法将数组中的每一个元素转换成字符串,然后用separate字符串分隔开,最后返回衔接在一起的字符串。join方法和字符串的split方法十一组反方法。

array.join(separate);

4、lastIndexOf() 返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后向前搜索。

同ECMAScript5中。


5、pop() 删除并返回数组的最后一个元素。

没有参数,删除并返回数组的最后一个元素。和push()方法一起使用,可以实现栈的功能(先进后出FILO)。

array.pop();

6、push(value,…) 向数组的末尾添加一个或更多元素,并返回新的长度。

该方法会将参数依次追加到array尾部,会直接修改array,不会创建一个新数组

array.push(value,...)

7、reverse() 颠倒数组中元素的顺序。

reverse方法可以颠倒数组中元素的顺序,操作的是原数组,不会返回一个新的数组

array.reverse();

8、shift() 删除并返回数组的第一个元素。

shift会直接操作原数组,不会创建新的数组。该方法会移除并返回数组的第一个元素,将所有后续元素前移一位。如果原数组为空,则什么也不做。通常和unshift一起使用。

array.shift();

9、slice(start,end) 从某个已有的数组返回选定的元素

第一个参数为数组片段开始处的元素索引,第二个参数为可选参数,是数组片段结束处的元素索引,如果不穿第二个参数,则默认到数组尾部。如果参数为负数,则从数组尾部开始计算,-1代表队后一个元素,-2代表倒数第二个元素。返回一个原数组的片段组成的新数组,并没有修改原数组。如果想要移除数组的一部分,使用Array.splice();

array.slice(start,end);

10、sort(orderfunc) 对数组的元素进行排序

orderfunc为可选参数,用来指定如何排序的函数。sort方法在原数组中进行排序,并没有创建新的数组。如果不指定参数,则按照字符编码顺序对数组中的元素进行排序,如果传入比较函数,就按照指定顺序来排序。如果比较函数的返回值小于0,从小到大排列,反之大到小。undefined会始终排在最后。

array.sort(orderfunc);

11、splice(start,deletecount,value,…) 删除元素,并向数组添加新元素。

start为开始插入或删除处的数组元素的序号。deletecount为要删除元素的个数,从start开始,如果指定为0,表示插入元素,不删除任何人元素。value为要插入元素的值。splice与slice方法名类似,但是splice会直接修改数组,而slice不会。splice返回移除的数组。

array.splice(start.,deletecount.value,...)

12、toString() 把数组转换为字符串,并返回结果。

toString()在把数组转化成字符串时,首先将每个数组元素转换成字符串,一旦每个元素转换为字符串后,toString()就会将这些字符串以逗号分隔的形式输出,返回值与不带参数调用join()方法返回的字符串是一样的。

array.toString();

13、unshift(value,…) 向数组的开头添加一个或更多元素,并返回新的长度。

unshift()会把参数直接插入到array的头部,如果还有第二个参数,则会成为元素1,以此类推。unshift方法不会创建新数组,而是直接修改数组本身。返回数组的新长度。

array.unshift();

14、valueOf() 返回数组对象的原始值

ECMAScript 5中新增的操作数组方法

1、every(predicate,o)测试断言函数是否对每个函数为真。

第一个参数为用来测试数组元素的断言函数,第二个参数为可选参数,表示调用predicate时的可选this值。如果对array的每一个元素调用predicate时返回值都为true,则返回true,如果任何一个元素调用predicate时返回false,则返回false。every()方法用来测试数组的所有元素是否符合条件,从前往后遍历数组,只要有一个元素不符合,立即停止遍历,并返回false。如果数组为空,返回true。

array.every(predicate,o);

2、filter(predicate,o)返回通过断言的数组元素。

第一个参数是一个用来测试数组中的元素是否符合要求的函数,第二个参数为可选参数,表示调用predicate时的可选this值。filter方法会返回一个数组,这个数组中的元素都是通过predicate检测的函数。方法会从数组的第一个元素开始遍历,直到最后一个元素,然后返回符合预言函数的元素组成的数组。

array.filter(predicate,o);
[1,2,3].filter(function(x){return x>1}); //[2,3]

3、forEach(f,o)为每一个数组元素调用一个函数。

第一个参数是每一个元素调用的函数,第二个参数为可选参数,是调用f时可指定this的值。forEach()按照索引号从小到大来遍历数组,并对每一个元素调用一次f。这个方法没有返回值,而是实际修改了原来的数组

array.forEach(f,o);
[1,2,3].forEach(function(x,i,[1,2,3]){[1,2,3][i]++});//a现在是[2,3,4]

4、indexOf(value,start)在数组中查找第一个特定的元素,并返回其索引

第一个参数为要在array重要查找的值,第二个参数为可选参数,如果不指定,则从索引为0处开始查找,指定后,则从指定的地方开始查找。返回这个值在元素中的索引,如果不存在则返回-1;

array.indexOf(value,start);

5、lastIndexOf(value,start)反向在数组中查找一个特定的元素,并返回其索引值。

第一个参数为在数组中查找的值,第二个参数为可选参数,如果不传,则从最后一个开始查找。如果没找到相应的元素,则返回-1。判断是否是相应元素时用的是===

array.lastIndexOf(value,start);

6、map(f,o)计算新值并组成新数组返回。

第一个参数为原数组中每一个元素都要调用的函数,第二个参数为可选参数,指定f调用时可选的this得值。返回一个新的数组,这个新数组是由原数组中的元素依次执行f得到的。

array.map(f,o);

7、reduce(f,inital)从数组元素中算出一个值并返回。

第一个参数是一个函数,可以合并两个值,并返回一个缩减的新值。第二个参数是可以用来作为缩减数组初始值的一个值,如果指定该参数,reduce方法会将这个值作为数组的第一个值,值得注意的是,并不是真正把这个参数作为第一个元素,只是在计算时这么做。函数f的行为像一个二院操作符,接受两个值,执行某些操作,然后返回结果。如果原数组有n个元素,reduce方法会调用n-1次f,将这些元素合并为一个值并返回。如果原数组为空,有没有指定第二个参数,调用reduce方法回去抛出异常,如果数组为空,但是有第二个参数,会直接返回第二个参数,并且不调用f。

array.reduce(f,inital);
[1,2,3,4].reduce(fonction(x,y) {return x*y;})//24:((1*2)*3)*4

8、reduceRight(f,inital)从右到左缩减数组。

参数和返回值同reduce,从右到左缩减数组。

array.reduceRight(f,inital);
[1,2,3,4].reduceRight(function(x,y){return x*y})//24:((4*3)*2)*1

9、some(predicate,o)测试是否由函数满足断言函数。

如果数组中至少有一个元素调用函数predicate返回真值,则返回true,反之返回false。some()方法用来测试数组中是否有符合条件的元素。some方法从前往后遍历数组,一旦发现有元素符合预言函数,立即停止遍历并返回true。可以与every方法作对比。

array.some(predicate,o);
[1,2,3].some(function(x){return x>=3});//true
阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页