字符串和数组的方法
一.字符串
例子 var str='abcdefg'
1.length(获取字符串的长度)
console.log(str.length);// 7
2.charAt(str)(获取到的是指定位置的字符)
console.log(str.charAt(2))//c
3.charCodeAt(str)方法获取的是指定位置字符的Unicode(万国码)值
console.log(str.charCodeAt(2))//99
万国码
统一码(Unicode),也叫万国码、单一码,是计算机科学领域里的一项业界标准,包括字符集、编码方案等。Unicode是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。
例子 var str='abcdefgabc'
4.indexOf(searchvalue,fromindex):查找某个字符,有则返回第一次匹配到的位置,否则返回-1
searchvalue:必需,规定需检索的字符串值;
fromindex:可选的整数参数,规定在字符串中开始检索的位置。它的合法取值是 0 到 string.length - 1。如省略该,则从字符串的首字符开始检索。
console.log(str.indexOf('c'))//2
console.log(str.indexOf('h'))//-1
console.log(str.indexOf("c", 4))//9
5.lastIndexOf():查找某个字符,有则返回最后一次匹配到的位置,否则返回-1
console.log(str.lastIndexOf("b"))//8
console.log(str.lastIndexOf("h"))//-1
6.concat() 方法用于连接两个或多个字符串。该方法不会改变原有字符串,会返回连接两个或多个字符串的新字符串
var str1='123'
var str2='abc'
console.log(str1.concat(str2));//'123abc'
7.split() 方法用于把一个字符串分割成字符串数组。该方法不会改变原始字符串
var str='abcd'
console.log(str.split(''));//['a', 'b', 'c', 'd']
8.substr()、substring()和 slice() 方法都可以用来截取字符串。
(1)slice(start,end) 方法用于提取字符串的某个部分,并以新的字符串返回被提取的部分
start:必须。 要截取的片断的起始下标,第一个字符位置为 0。如果为负数,则从尾部开始截取。
end:可选。 要截取的片段结尾的下标。若未指定此参数,则要提取的子串包括 start 到原字符串结尾的字符串。如果该参数是负数,那么它规定的是从字符串的尾部开始算起的位置
var str = "abcdefg";
str.slice(1,6); // "bcdef"
str.slice(1); // "bcdefg"
str.slice(); // "abcdefg"
str.slice(-2); // "fg"
str.slice(6, 1); // ""
(2)substr(start,length) 方法用于在字符串中抽取从开始下标开始的指定数目的字符
start 必需。要抽取的子串的起始下标。必须是数值。如果是负数,那么该参数声明从字符串的尾部开始算起的位置。也就是说,-1 指字符串中最后一个字符,-2 指倒数第二个字符,以此类推。
length:可选。子串中的字符数。必须是数值。如果省略了该参数,那么返回从 string 的开始位置到结尾的字串。
var str = "abcdefg";
str.substr(1,6); // "bcdefg"
str.substr(1); // "bcdefg" 相当于截取[1,str.length-1]
str.substr(); // "abcdefg" 相当于截取[0,str.length-1]
str.substr(-1); // "g"
(3)substring(from, to) 方法用于提取字符串中介于两个指定下标之间的字符
from:必需。一个非负的整数,规定要提取的子串的第一个字符在 string 中的位置。
to:可选。一个非负的整数,比要提取的子串的最后一个字符在 string 中的位置多 1。如果省略该参数,那么返回的子串会一直到字符串的结尾。
var str = "abcdefg";
str.substring(1,6); // "bcdef" [1,6)
str.substring(1); // "bcdefg" [1,str.length-1]
str.substring(); // "abcdefg" [0,str.length-1]
str.substring(6,1); // "bcdef" [1,6)
str.substring(-1); // "abcdefg"
9.toLowerCase() 和 toUpperCase()方法可以用于字符串的大小写转换。
//toLowerCase()
var str = "adABDndj";
str.toLowerCase(); //"adabdndj"
//toUpperCase()
var str = "adABDndj";
str.toUpperCase(); //"ADABDNDJ"
10.trim() 方法用于移除字符串首尾空白符,该方法不会改变原始字符串
var str = " abcdef "
str.trim() //"abcdef"
二.数组
1.concat(arr)用于连接两个或多个数组,该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本
var arr1=[1,2,3,4]
var arr2=['a','b','c']
console.log(arr1.concat(arr2));//[1,2,3,4,'a','b','c']
2.join()根据指定分隔符将数组中的所有元素放入一个字符串,并返回这个字符串
var arr = [ 1, 2, 3, 4, 5 ]
console.log( arr.join( '' ) );//12345
console.log( arr.join() );//1,2,3,4,5
console.log( arr.join( '--' ) );//1--2--3--4--5
3.pop(),shift(),unshift(),push()用于对数组的添加与删除
(1).pop()方法用于删除并返回数组的最后一个元素
var arr = [ 1, 2, 3, 4, 5 ]
var num=arr.pop()
console.log(num);//5
console.log(arr);//[1,2,3,4]
(2).shift()方法用于删除并返回数组的第一个元素
var arr = [ 1, 2, 3, 4, 5 ]
var num=arr.shift()
console.log(num);//1
console.log(arr);//[2,3,4,5]
(3).unshift()向数组的开头添加一个或更多元素,并返回新的长度
var arr = [ 1, 2, 3, 4, 5 ]
var num=arr.unshift(9)
console.log(num);//6
console.log(arr);//[9, 1, 2,
(4).push()向数组的末尾添加一个或更多元素,并返回新的长度
var arr = [ 1, 2, 3, 4, 5 ]
var num=arr.push(9)
console.log(num);//6
console.log(arr);//[1, 2, 3, 4, 5, 9]
4.reverse()颠倒数组中元素的顺序
var arr = [ 1, 2, 3, 4, 5 ]
console.log(arr.reverse());//[5, 4, 3, 2, 1]
5.slice(start, end)可从已有的数组中返回选定的元素
start:表示从第几位开始(必选)
end:表示到第几位结束(不包含end位)(可选)省略表示到最后一位
start和end都可以为负数,负数时表示从最后一位开始算起,如-1表示最后一位。
var arr = [ 1, 2, 3, 4, 5 ]
console.log(arr.slice(2))//[3, 4, 5]
console.log(arr.slice(2,4))//[3, 4]
console.log(arr.slice(-2))//[4, 5]
console.log(arr.slice(-3,-1))
6.sort(callback)对数组中的元素进行排序,默认是升序
var arr = [ 7, 8, 1, 2, 3, 4, 5 ]
console.log(arr.sort())//[1, 2, 3, 4, 5, 7, 8]
console.log(arr)//[1, 2, 3, 4, 5, 7, 8]原数组改变
注:但是在排序前,会先调用数组的toString方法,将每个元素都转成字符之后,再进行排序,此时会按照字符串的排序,逐位比较,进行排序。
var arr = [ 6, 1024, 52, 256, 369 ];
console.log( arr.sort() ); //[1024, 256, 369, 52, 6]
如果需要按照数值排序,需要传参。sort(callback),callback为回调函数,该函数应该具有两个参数,比较这两个参数,然后返回一个用于说明这两个值的相对顺序的数字(a-b)
var arr = [ 6, 1024, 52, 256, 369 ];
arr.sort((a,b)=>{
return a-b
})
console.log( arr );//[6, 52, 256, 369, 1024]
arr.sort((a,b)=>{
return b-a
})
console.log( arr );//[1024, 369, 256, 52, 6]
7.splice(start,num,...data)向数组中添加,或从数组删除,或替换数组中的元素,然后返回被删除/替换的元素,不传参数不做操作
start:表示从索引为start的数据开始删除,直到数组结束,返回被删除的元素
var arr=[1,2,3,4,5,6]
console.log(arr.splice(2));//[3, 4, 5, 6]
console.log(arr);// [1, 2]
num:表示从索引为start的数据开始删除,删除num个
var arr=[1,2,3,4,5,6]
console.log(arr.splice(2,2));//[3, 4]
console.log(arr);// [1, 2, 5, 6]
data:表示从索引为start的数据开始删除,删除num个,并将第三个参数及后面所有参数,插入到start的位置
var arr=[1,2,3,4,5,6]
console.log(arr.splice(2,2,'a','b','c'));//[3, 4]
console.log(arr);//[1, 2, 'a', 'b', 'c', 5, 6]
8.map,forEach,和filter数组的循环
相同点:都用于数组的循环遍历
不同点:map有返回值且返回值是所有回调返回值组成的新的数组,forEach没有返回值,filter则是返回符合返回值为true的新数组
//forEach
var arr=[1,2,3,4,5,6]
var newArr=arr.forEach((item,index)=>{
console.log(item+'--'+index)
return item+'a'
// 1--0
// 2--1
// 3--2
// 4--3
// 5--4
// 6--5
})
console.log(newArr)//undefined
//map
var arr=[1,2,3,4,5,6]
var newArr=arr.map((item,index)=>{
console.log(item+'--'+index)
return item+'a'
// 1--0
// 2--1
// 3--2
// 4--3
// 5--4
// 6--5
})
console.log(newArr)//['1a', '2a', '3a', '4a', '5a', '6a']
//filter
var arr=[1,2,3,4,5,6]
var newArr=arr.filter((item,index)=>{
return item > 3
})
console.log(newArr)//[4, 5, 6]
9.every()判断数组中每一项是否都满足条件,只有所有项都满足条件,才会返回true(全真为真,一假则假)
var arr=[1,2,3,4,5,6]
var result=arr.every((item,index)=>{
return item>0
})
console.log(result)//true
var arr=[1,2,3,4,5,6]
var result=arr.every((item,index)=>{
return item>3
})
console.log(result)//false
10.some()判断数组中是否存在满足条件的项,只要有一项满足条件,就会返回true(一真则真,全假为假)
var arr=[1,2,3,4,5,6]
var result=arr.some((item,index)=>{
return item>3
})
console.log(result)//true
var arr=[1,2,3,4,5,6]
var result=arr.some((item,index)=>{
return item>7
})
console.log(result)//false
标签:arr,console,log,var,str,数组,字符串,方法 From: https://www.cnblogs.com/wcq520/p/16844642.html