数组和字符串常见操作

数组

数组的检测: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
:   删除、插入、替换,然后返回处理后的项目。(开始的位置,要剪切的数目,添加数目)  ---->剪切、添加   跟slice的不同之处就在于这个 会对原来的数组进行操作 ,返回的是被删除的数组的值。
 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()  方法用于提取字符串中介于两个指定下标之间的字符。stringObject.substring(start,stop)。不包含结束。返回的是一个新的字符串

es提供了三个基于子字符串创建新字符串的方法: slice()substr()substring() 。 比较如下:
  1. var str = 'hello world';
  2. str.slice(3);       // 'lo world';
  3. str.substring(3);   // 'lo world';
  4. str.substr(3);      // 'lo world';
  5. -------------------------------------------------
  6. str.slice(3,7);      // 'lo w';
  7. str.substring(3,7);  // 'lo w';
  8. str.substr(3,7);     // 'lo worl';  // 个数

3 位置方法:
indexOf( subSting ,[index])   从前面返回搜索字符串的索引。如果没有匹配项,返回 -1 。如有第二个参数则表示的是从该位置开始搜搜。
lastIndexOf ( subString ,[index]) 从后面

  1. var str = 'aniki is my engalings name';
  2. var positions = new Array();
  3. var pos  = str.indexOf('n');
  4. while( pos>-1 ){ 
  5.   positions.push( pos );
  6.   pos = str.indexOf('n', pos +1);
  7. }
  8. 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  执行的操作是相反的。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值