数组和字符串常见操作
2017-03-17 10:18
162 查看
数组
数组的检测:es3出来以后检测数组成为一个很经典的问题。对于一个网页或者一个全局的作用域而言,使用instanceof 就可以,但是如果有框架嵌套就会失去作用。es5新增方法: Array.isArray() // 兼容级别是ie9,全兼容的请看 点我 看页面底部
所有的对象都具有 toLocaleString(). toString() valueOf() 方法
栈方法: -> 先入后出 栈中插入叫做推入,移除叫弹出。
push: 在最后一位推入,返回的是推入后整个数组的长度。
pop(): 删除最后一位,返回的是删除项。
队列方法:->先入先出
shift() : 在数组的首位进行删除,返回该项。
unshift(): 在数组的首位进行添加,返回的是添加后整体数组。
重排序方法: 这两个方法操作的都是原数组,因此返回值跟原来的数组值都是发生了改变的。
sort():默认是调用转型函数toString()方法,比较的其实是ascill值,因此不准确。它可以接受一个比较函数,用于比较。
reverse() : 反转数组的顺序。
concat: 无参时返回副本,有参时添加到当前数组的后面,合成一个新的数组返回。
splice[/b] : 删除、插入、替换,然后返回处理后的项目。(开始的位置,要剪切的数目,添加数目) ---->剪切、添加 跟slice的不同之处就在于这个会对原来的数组进行操作[/b],返回的是被删除的数组的值。
arrayObject.splice(index,howmany,item1,.....,itemX)
位置方法:浏览器 ie9++
indexof(): es5新增数组查找方法,查找不到返回-1; arr.indexof('anikin'); 查找anikin的位置
lasetIndexof() 同上,只是从最后开始查找
join() 方法用于把数组中的所有元素放入一个字符串。如果不指定分隔符,默认是逗号
字符串1 字符方法:
charAt( index ) : 返回对应位置的字符串charCodeAt( index ): 返回对应位置字符串的字符编码。
2. 字符串操作方法:
concat( string ): 将一个或者多个字符串连接起来,实际使用的不多,一般采用加号形式。 substring() [/b]方法用于提取字符串中介于两个指定下标之间的字符。stringObject.substring(start,stop)。不包含结束。返回的是一个新的字符串
es提供了三个基于子字符串创建新字符串的方法:slice() 、substr() 和 substring() 。 比较如下:var str = 'hello world';
str.slice(3); // 'lo world';
str.substring(3); // 'lo world';
str.substr(3); // 'lo world';
-------------------------------------------------
str.slice(3,7); // 'lo w';
str.substring(3,7); // 'lo w';
str.substr(3,7); // 'lo worl'; // 个数
3 位置方法:indexOf( subSting ,[index])[/b] 从前面返回搜索字符串的索引。如果没有匹配项,返回 -1 。如有第二个参数则表示的是从该位置开始搜搜。lastIndexOf ( subString ,[index]) 从后面
var str = 'aniki is my engalings name';
var positions = new Array();
var pos = str.indexOf('n');
while( pos>-1 ){
positions.push( pos );
pos = str.indexOf('n', pos +1);
}
alert( positions ); // 1,5,15,22
4. 大小写转化: toLowerCase(): toUpperCase()
5 模式匹配
match() – 本质上与调用 RegExp 的 exec() 方法相同,返回的是个数组。
replace() – 用来查找匹配一个正则表达式的字符串,然后使用新字符串代替匹配的字符串
search() – 执行一个正则表达式匹配查找。如果查找成功,返回字符串中匹配的索引值。否则返回 -1
数组的检测:es3出来以后检测数组成为一个很经典的问题。对于一个网页或者一个全局的作用域而言,使用instanceof 就可以,但是如果有框架嵌套就会失去作用。es5新增方法: Array.isArray() // 兼容级别是ie9,全兼容的请看 点我 看页面底部
所有的对象都具有 toLocaleString(). toString() valueOf() 方法
栈方法: -> 先入后出 栈中插入叫做推入,移除叫弹出。
push: 在最后一位推入,返回的是推入后整个数组的长度。
pop(): 删除最后一位,返回的是删除项。
队列方法:->先入先出
shift() : 在数组的首位进行删除,返回该项。
unshift(): 在数组的首位进行添加,返回的是添加后整体数组。
重排序方法: 这两个方法操作的都是原数组,因此返回值跟原来的数组值都是发生了改变的。
sort():默认是调用转型函数toString()方法,比较的其实是ascill值,因此不准确。它可以接受一个比较函数,用于比较。
reverse() : 反转数组的顺序。
var arr = new Array( 'rose','anikin','cc','jspn','blue','az' ); var res = new Array( 34,2,65,3,1,0,29 ); // 适合所有的比较,包括数值型或者字母型的数组 function compare( val1,val2 ){ if( val1<val2 ){ return -1; }else if( val1>val2 ){ return 1 }else{ return 0 } } // 如果单纯是数值型的数组,那么就可以使用这个比较简单的 比较函数 function compare2( v1,v2 ){ return v1-v2; } var x = arr.sort( compare ); var y = res.sort(compare); var z = res.sort(compare2); document.write( x ); //anikin,az,blue,cc,jspn,rose document.write( y ); // 0,1,2,3,29,34,65 document.write( z ); // 0,1,2,3,29,34,65操作方法:
concat: 无参时返回副本,有参时添加到当前数组的后面,合成一个新的数组返回。
splice[/b] : 删除、插入、替换,然后返回处理后的项目。(开始的位置,要剪切的数目,添加数目) ---->剪切、添加 跟slice的不同之处就在于这个会对原来的数组进行操作[/b],返回的是被删除的数组的值。
arrayObject.splice(index,howmany,item1,.....,itemX)
var arr1 = ['11','22','33','44','55']; // 替换 arr1.splice( 1,0,'aaa','bbb' ); console.log( arr1 ) // ['11','aa','bb','22','33','44','55'] // 删除 var res = arr1.splice( 1,1 ); console.log(arr1 );// ['11','33','44','55'] res = '22'; / / 删除的同时在添加 arr1.splice( 2,2,'ankin','rose' ); console.log( arr1 ); // ['11','22','anikin','rose','55'] // 返回值是被删除的对象 == 替换slice() :从已有的数组中返回一个新的数组,包含从 start 到 end (不包括该元素)的 arrayObject 中的元素。 ----->复制选中的一个数组
位置方法:浏览器 ie9++
indexof(): es5新增数组查找方法,查找不到返回-1; arr.indexof('anikin'); 查找anikin的位置
lasetIndexof() 同上,只是从最后开始查找
join() 方法用于把数组中的所有元素放入一个字符串。如果不指定分隔符,默认是逗号
字符串1 字符方法:
charAt( index ) : 返回对应位置的字符串charCodeAt( index ): 返回对应位置字符串的字符编码。
2. 字符串操作方法:
concat( string ): 将一个或者多个字符串连接起来,实际使用的不多,一般采用加号形式。 substring() [/b]方法用于提取字符串中介于两个指定下标之间的字符。stringObject.substring(start,stop)。不包含结束。返回的是一个新的字符串
es提供了三个基于子字符串创建新字符串的方法:slice() 、substr() 和 substring() 。 比较如下:var str = 'hello world';
str.slice(3); // 'lo world';
str.substring(3); // 'lo world';
str.substr(3); // 'lo world';
-------------------------------------------------
str.slice(3,7); // 'lo w';
str.substring(3,7); // 'lo w';
str.substr(3,7); // 'lo worl'; // 个数
3 位置方法:indexOf( subSting ,[index])[/b] 从前面返回搜索字符串的索引。如果没有匹配项,返回 -1 。如有第二个参数则表示的是从该位置开始搜搜。lastIndexOf ( subString ,[index]) 从后面
var str = 'aniki is my engalings name';
var positions = new Array();
var pos = str.indexOf('n');
while( pos>-1 ){
positions.push( pos );
pos = str.indexOf('n', pos +1);
}
alert( positions ); // 1,5,15,22
4. 大小写转化: toLowerCase(): toUpperCase()
5 模式匹配
match() – 本质上与调用 RegExp 的 exec() 方法相同,返回的是个数组。
replace() – 用来查找匹配一个正则表达式的字符串,然后使用新字符串代替匹配的字符串
search() – 执行一个正则表达式匹配查找。如果查找成功,返回字符串中匹配的索引值。否则返回 -1
var str = 'This is my English name anikin'; var re = /anikin/g; var re2 = /\s+/g; // alert( re.test(str) ); // RegExp() 对象提供的一个方法; // String 包装对象下面的四个方法方法: /* 1: match: 返回符合条件的子串 2: replace(re,replacement); 返回的是替换后的内容,以前的内容是不变的; 3: search() 在复制上操作; 返回的是字符串开始的位置 4: split() 在复制的组上操作,不修改原来的数组 */ // alert( str.match(re) ); // var a = str.replace(re,'Hello AngularJs'); // var b = str.search(re); var c = str.split(' ',2); console.log(c); // ["This", "is", "my", "English", "name", "anikin"] var d = str.split(re2);es5: 新增trim()方法split() 方法用于把一个字符串分割成字符串数组。String.split() 执行的操作与 Array.join 执行的操作是相反的。
相关文章推荐
- js 常见数组和字符串的操作
- 再回首,数据结构——字符串与数组的常见操作(顺序存储)
- C++中字符串,数组常见操作的接口
- 再回首,数据结构——字符串与数组的常见操作(链式存储,包含朴素匹配算法等)
- js数组常见操作及数组与字符串相互转化实例详解
- [Object C] 字符串和数组NSString NSArray操作
- MATLAB 常见字符串的操作
- 字符串常见操作
- c#字符串及数组操作 (转)
- C#字符串及数组操作
- JavaScript 字符串操作的几种常见方法
- 字符串的常见的操作字串匹配等没有用结构体版
- DELPHI基础:字符串、数组操作函数
- SQL字符串数组操作
- C#中定义数组--字符串及数组操作
- 字符串常见操作
- C#中定义数组--字符串及数组操作
- 常见问题及解决办法 整理之3(字符串相关操作)
- Delphi内存指针操作说明--怎样把字符串的内容拷贝到比特数组中?