js数组与字符串常用的方法

字符串常用方法:

substring(start开始位置的索引,end结束位置索引) 截取的位置不包含结束位置的字符,只写一个参数表示从开始位置截取到最后

 var str='abcdefg';  
 str.substring(1) //得到bcdefg  str.substring(1,3) //得到bc

输入负值时将负值变为0,哪个较小作为开始位置
str.substing(-1,1) =>str.substring(0,1) //a
str.substring(1,-2) =>str.substring(0,1) //a

slice(start开始位置索引,end结束位置索引) 基本和substring相似,区别在参数为负数。

var str='abcdefg'; 
str.slice(1)  //bcdefg      str.substring(1,3) // bc

输入负值时 值与字符串的长度相加
str.slice(-1) =>str.slice(6) //g
str.slice(1,-2) =>str.slice(1,5) //bcde
str.slice(-2,-1)=>str.slice(5,6) //f
值绝对值大于字符串的长度时变为 0
str.slice(-22) =>str.substring(0) //abcdefg
第二个参数绝对值大于字符串的长度时,返回’’

substr(start开始位置索引,end需要返回的字符个数)

var str='abcdefg'; 
str.substr(1) //bcdefg      str.substr(1,1) //b

输入负值时 start参数与字符串的长度相加 ,end为负时参数变为0

str.substr(-1) =>str.substr(6)//g         
str.substr(-2,-3) // ''

charAt(index) 方法返回指定索引位置处的字符。如果超出有效范围(0与字符串长度减一)的索引值返回空字符串.

 var str='abcdefg';
 str.charAt(2) // c

indexOf(string) 返回String对象内第一次出现子字符串位置。如果没有找到子字符串,则返回-1。

 var str='abcdefga'  
 str.indexOf('a')  // 0   
 str.indexOf('h') //-1

lastIndexOf(string) 倒叙查找
返回String对象内第一次出现子字符串位置。如果没有找到子字符串,则返回-1。

var str='abcdefga'     
str.lastIndexOf('a') // 7

split(str) 将字符串以参数分割为数组

var str='abcadeafg'     
str.split('a') //["", "bc", "de", "fg"]

toLowerCase方法返回一个字符串,该字符串中的字母被转换成小写。

toUpperCase方法返回一个字符串,该字符串中的所有字母都被转换为大写字母。

match() – 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配

search 方法返回与正则表达式查找内容匹配的第一个字符串的位置。

replace 用来查找匹配一个正则表达式的字符串,然后使用新字符串代替匹配

数组常用的方法
push 添加到最后 返回添加后的数组

unshift 添加到最前面 返回添加后的数组

shift 删除(从前面) 返回处理后的数组

pop 删除最后一项 返回处理后的数组

reverse 数组翻转 返回处理后的数组

join 数组转化为字符串

 var arr=[1,2,3,4,5], str=arr.join('--'); 
 console.log(str); // 1--2--3--4--5 以join内的参数切割数组
 console.log(arr); // [1,2,3,4,5]  原数组未变

slice(start,end) 截取数组 从start(开始) 到end(结束 不包含)
返回新数组,原数组不变

var arr=[1,2,3,4,5],new=arr.slice(2,4);
console.log(new);  // [3,4]
console.log(arr);  // [1,2,3,4,5]  

concat 数组合并

splice(开始下标,个数,ele1,ele2…) 剪接数组
(1).一个参数 从参数位置截取 填写负数类似上面str slice 返回截好的数组 原数组变化

 var arr=[1,2,3,4,5];
 console.log(arr.splice(1));  // [2,3,4,5]
 console.log(arr);       // [1]
 console.lgo(arr.splice(-1))  // [5]    

(2).二个参数 截取 (开始位置,个数) 返回截好的数组 原数组变化

 var arr=[1,2,3,4,5];
 console.log(arr.splice(1,3)); // [2,3,4]
 console.log(arr)       // [1,5]
 arr.splice(0,1) =>arr.shift()
 arr.splcie(arr.length-1,1) =>arr.pop()

(3).添加 原数组增加

var arr=[1,2,3,4,5];
console.log(arr.splice(1,0,13)); // []
console.log(arr);        // [1,13,2,3,4,5]

(4).替换

 var arr=[1,2,3,4,5];
 console.log(arr.splice(1,2,'a','b')) // [2,3]
 console.log(arr);        // [1,'a','b',4,5]
 arr.splice(0,0,1) =>arr.unshift(1);
 arr.splice(arr.length,0,1) => arr.push(1)

arr.forEach(item,index,array){} 遍历,循环 类似jquery的each
其中的item参数是数组中的内容,index为其索引,array表示数组本身

var arr=[1,2,3,4,5];
      arr.forEach(function(item,index,array){
      })

map方法 映射 用法和forEach类似

var men=[
          {'name':1,'age':12},
          {'name':2,'age':22},
          {'name':3,'age':33}
      ],
      age=men.map(function(item){
          return item.age;
      })

arr.sort 排序

var arr=[1,2,22,11,33,3,5,4];
  console.log(arr.sort()) // [1,11,2,22,3,33,4,5] 

默认情况下sort方法是按ascii字母顺序排序的,而非我们认为是按数字大小排序

 arr.sort(function(a,b){ return a-b})

a-b从小到大 b-a从大到小

我觉得吧还是基础最重要~~

发布了39 篇原创文章 · 获赞 46 · 访问量 2814

猜你喜欢

转载自blog.csdn.net/sslcsq/article/details/103858642