经常使用数组、字符串的方法(详解)

一、indexOf( 数组 ||  字符串 );    做用:返回数组中某个指定元素的位置 (下标)。

('item',['start']) 两个参数:正则表达式

item: 必选、查找的元素。
start: 可选参数,规定在字符串中开始检索的位置,它的合法取值是StringObject.legth-1如省略该参数,则从字符串首字符开始检索。

返回值: Number类型
元素在数组中的位置,若是没有搜索到则返回 -1 。

兼容:全部主流浏览器都支持 indexOf()方法,IE8及如下不支持该方法。数组

 

二、slice( 数组 || 字符串 );    做用:该方法是对数组的部分截取,并返回一个数组副本;

 ('start',['end']) 两个参数  :浏览器

start:参数start是截取的开始数组索引
end :可选参数end是你要截取的最后一个字符的 位置值 加上 1 。函数

>(1) :若是传入的参数是一个,那么将从参数一的索引位置开始截取,一直到数组尾;

>(2) :若是传入的参数是一个,而且是一个负数的话,那么他会从数组的后面开始截取;编码

>(3) :若是传入的参数是一个,而且是一个负数的话,而且它的绝对值大于或等于数组的 length ,那么他会截取整个数组。spa

>(4) :若是两个参数都是负数的话,前面的参数小于后面的参数。 code

注:位置是固定好的,从左往右找,不包含结尾位置的字符。regexp

 

三、substr();   做用:在字符串中抽取从 start 下标开始的指定数目的字符。

(start,length)两个参数:对象

start:必须参数、必须是数值。若是是负数,那么该参数声明从字符串的尾部开始算起的位置。blog

length:必须参数、子串中的字符数。必须是数值。若是省略了该参数,那么返回从 stringObject 的开始位置到结尾的字串

返回值:一个新的字符串。不改变原字符串。

注:ECMAscript 没有对该方法进行标准化,所以反对使用它。

var str="I Love You !"
alert(str.substr(2,3));
alert(str); 

四、substring() 做用:用于提取字符串中介于两个指定下标之间的字符。

 (start,stop) 两个参数:

start:必需。一个非负的整数,规定要提取的子串的第一个字符在 stringObject 中的位置。

 stop:可选。最后一个被提取的字符,不包含最后一个。

返回值:一个新的字符串。不改变原字符串。

  注:与 slice() 和 substr() 方法不一样的是,substring() 不接受负的参数。

var str="I Love You !";
alert(str.substring(2,3));
alert(str);

五、 splice(数组);  做用:该方法是从一个数组中删除一个或多个元素,并用新的item替换他们;

('start','deleteCount','item...')  三个参数

:start是从数组元素删除开始的位置;
:deleteCount删除元素的个数;
:item替换删除掉的元素(能够是多个元素);

返回值:被删除掉的元素。

六、split(字符串); 做用:把字符串分割成片断来建立一个字符串数组。

('separator','limit') 两个参数

: separator参数可使一个字符串或一个正则表达式;
:limit限制被分割的片断数量;

slice() 、 splice()  、 split() 区别:   slice() 和 split() 改变的都是副本,splice() 返回的修改后的内容。

七、for in 循环; 做用:用于遍历数组或者对象的属性(对数组或者对象的属性进行循环操做);

语法: for(变量 in 对象)
{
执行的代码;
}

判断一个对象是否能够用for...in 来穷举: propertyIsEnumerable();

('proName')一个参数   :

proName一个属性名称的字符串的值。

返回值:Boolean类型 true表示能够穷举
false表示不能够穷举

八、push(数组);  做用:从尾部添加一个或多个元素

('newEleament1',['newEleament2'],['newEleament3'])多个参数

:newEleament1 添加的第一个参数。
:newEleament2 添加的第二个参数。
:newEleament3 添加的第三个参数。

返回值:Number    返回数组的新长度;

九、unshift(数组); 做用:向数组的开头添加一个或多个元素

('newEleament1',['newEleament2'],['newEleament3'])多个参数

: newEleament1 添加的第一个参数。
:newEleament2 添加的第二个参数。
:newEleament3 添加的第三个参数。

返回值:Number    返回数组的新长度;

兼容:没法兼容IE浏览器。

十、pop(数组);  做用:用于删除数组的最后一个元素。

没有参数

返回值:返回最后被删除的一个元素;

注:若是数组已为空,不改变数组的长度,返回undefiend;

十一、shift(数组);  做用:把数组的第一个元素删除;

没有参数

返回值:返回最后一个被删除的值;

注:若是数组为空,shift()不作任何操做;返回undefined;

十二、concat(数组 || 字符串 );  做用:把两个或多个数组链接起来;

('arrX1','arrX2',['arrX3'])多个参数:

返回值:不会改变现有数组,只会返回一个链接的数组的一个副本。

var ccc =['q','3','e'];
var ccc2 =['q','3','e'];
console.log(ccc.concat(ccc2));

1三、join(数组);   做用:把数组中的全部元素放入一个字符串中;

(['separator'])一个参数:

separator:指定要使用的分隔符。若是省略默认为逗号为分隔符。

返回值:一个字符串,该字符串是把数组中的全部元素转换为字符串类型。,再经过指定的分隔符链接起来。

1四、sort(数组); 做用:用于数组的排序。

(['sortby'])一个参数:

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

返回值:对数组的引用,在原数组上排序,不生成副本。

1>若是调用该方法没有参数,则按照字母顺序进行排序。跟准确的来讲是按照字符集编码来排序的。要实现这一点要先把数组的元素都变成字符串,以便进行比较
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));

1五、charAt(字符串);  做用:返回指定位置的字符。

('index')一个参数:

index表示字符串中某个位置的数字。即字符串的下标。

注:若是index不在0---string.length之间,该方法返回一个空字符串。

返回值:查找的字符。

1六、instanceof 

操做符应该仅仅用来比较来自同一个 JavaScript 上下文的自定义对象。 正如 typeof 操做符同样,任何其它的用法都应该是避免的。

1七、charCodeAt(字符串);  做用:返回指定的字符unicode 编码。这个返回值是   0---65535   之间的整数。

('index')一个参数: index表示字符串中某个字符的下标。

注:若是字符串的下标大于等于字符串的长度,则返回一个NaN.

 1八、fromCharCode(字符串);  做用:接受一个指定的unicode编码,而后返回一个字符串。

('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'));

1九、match(字符串);   做用:在字符串中检索指定的值,或者找到一个或多个正则表达式的匹配。

('searchvalue','regexp')两个参数(取其中一个):

 searchvalue规定要检索的字符串。

regexp规定要匹配的模式RegExp对象。若是该参数不是RegExp对象,则须要首先把它传递给RegExp构造函数
将其转换为RegExp对象。

返回值:一、若是是检索指定的值,则返回指定值的下标。
    二、若是没有找到检索的值,则返回null。
    三、若是找到了一个或多个匹配子串,则返回一个数组。不过全局匹配返回的数组的内容与前者大不相同,它的数组元素中存放的是 stringObject 中全部的匹配子串,并且也没有 index 属性或 input 属性。
    四、若是没找到则返回null。

var str="1 plus 2 equal 3"
                document.write(str.match(/\d+/g))
                console.log(str.match(/\d+/g));

20、replace(字符串);  做用:用于把一些字符替换另外一些字符,或替换一个正则表达式匹配的子串。

语法:stringObject.replace(regexp/substr,replacement) 

regexp/substr规定子字符串或要替换的模式的RegExp对象。
replacement规定替换文本或生成替换文本的函数。

返回值:替换以后的一个新的字符串。

2一、toUpperCase(字符串);   做用:把字符串转换为大写。

没有参数
返回值:一个新的字符串,String里面的小写字符全变成大写的。不改变原有字符串。

             var str="fefefJJLKJKLJ";
             alert(str.toUpperCase());
             alert(str);

2二、toLowerCase();  做用:把字符串转换成小写。

没有参数
返回值:一个新的字符串,String里面的大写全转换成小写字母。不改变原字符串。

 var str="fefefJJLKJKLJ"; alert(str.toLowerCase()); 
相关文章
相关标签/搜索