字符串和数组的方法总结

字符串的理解:字符串或串(String)是由数字、字母、下划线组成的一串字符。

是一种数据类型也可以是对象

  • 字符串方法总结

  • 1.length :

定义和用法

返回字符串长度

    let str ="zhangsan"
        console.log(str.length);
///结果是8
  • indexOf() :

定义和用法

返回字符串中指定文本首次出现的索引,未出现,返回-1 ,可接收两个参数,第一个参数是查找的内容,第二个参数从指定位置开始 ,没有第二个参数默认从0开始

  • lastIndexOf ():

定义和用法

返回字符串中指定文本最后一次出现的索引,未出现,返回-1,可接收两个参数,第一个参数是查找的内容,第二个参数从开头到指定位置,没有第二个参数默认从0开始

var str = "hello world,hello man,how are you!";
console.log(str.indexOf('hello'))
 ///结果 0 
console.log(str.lastIndexOf('hello',11))
///结果为 0  因为从后往前找第一个hello的位置是12,从11开始找的话这个hello肯定没有,只会找到最开始的那个hello,返回0。
  1. slice():

提取字符串的某个部分并返回值

定义和用法

提取字符串的某个部分并返回值 :(一个新的字符串,从 start 开始(包括 start)到 end 结束(不包括 end)为止的所有字符。),

两个参数:start,end。

<script type="text/javascript">

var str="Hello happy world!"
document.write(str.slice(6,11))

</script>
输出:

happy
  • split()方法

定义和用法

用于把一个字符串分割成字符串数组。

string.split(separator,howmany)

separator 必需。字符串或正则表达式,从该参数指定的地方分割 string

howmany 可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度

var str="How are you doing today?";
var n=str.split('');
第一个参数是空串,第二个参数不传递默认是整个字符串,就会把每个字符全部分割并用逗号隔开
result:H,o,w, ,a,r,e, ,y,o,u, ,d,o,i,n,g, ,t,o,d,a,y,?
第二种情况
var str="How are you doing today?";
var n=str.split(' ',3);
第一个参数是空格,第二个参数是3,意味着把字符串按空格分割为长度为3的数组,剩余的截断舍弃
result:How,are,you
  • substr()方法

定义和用法

substr( start,length) 方法可在字符串中抽取从 start 下标开始的指定数目的字符。

start:表示从字符串的哪个下标开始抽取

length:抽取多少字符串长度 ,如果没有设置长度 默认全部

<script type="text/javascript">

var str="Hello world!"
document.write(str.substr(3,7))

</script>
结果为   lo worl
  • charAt()方法

定义和用法

charAt() 方法可返回指定位置的字符。

<script type="text/javascript">
var str="Hello world!"
document.write(str.charAt(1))
</script>
//打印结果e
  • charCodeAt()方法

定义和用法

charCodeAt() 方法可返回指定位置的字符的 Unicode 编码。这个返回值是 0 - 65535 之间的整数。

方法 charCodeAt() 与 charAt() 方法执行的操作相似,只不过前者返回的是位于指定位置的字符的编码,而后者返回的是字符子串

<script type="text/javascript">

var str="Hello world!"
document.write(str.charCodeAt(1))

</script>
//打印结果 101

定义和用法

concat() 方法用于连接两个或多个数组。

该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。

<script type="text/javascript">

var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"

var arr2 = new Array(3)
arr2[0] = "James"
arr2[1] = "Adrew"
arr2[2] = "Martin"

document.write(arr.concat(arr2))

</script>
//输出:George,John,Thomas,James,Adrew,Martin
  • match()

定义和用法

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

该方法类似 indexOf() 和 lastIndexOf(),但是它返回指定的值,而不是字符串的位置。

<script type="text/javascript">

var str="333 plus 233equal 443"
document.write(str.match(/\d+/g))

</script>
 ///333,233,443
//对字符串进行检索
<script type="text/javascript">

var str="Hello world!"
document.write(str.match("world") + "<br />")
document.write(str.match("World") + "<br />")
document.write(str.match("worlld") + "<br />")
document.write(str.match("world!"))

</script>
结果为:
world
null
null
world!

  • replace()

定义和用法

replace() 方法用于在字符串中用一些字符替换另一些字符,返回一个新字符串,而不改变原始字符串。或替换一个与正则表达式匹配的子串。您可以将正则表达式作为第一个参数传递,除非您使用

正则表达式文字形式:/string/作为搜索字符串,并且指定了全局( /g )选项,否则replace()将仅替换第一个匹配项:

<script type="text/javascript">

var str="Welcome to Microsoft! "
str=str + "We are proud to announce that Microsoft has "
str=str + "one of the largest Web Developers sites in the world."

document.write(str.replace(/Microsoft/g, "W3School"))

</script>
///结果为:
Welcome to W3School! We are proud to announce that W3School
has one of the largest Web Developers sites in the world.

  • toLocaleLowerCase()

定义和用法

toLocaleLowerCase() 方法用于把字符串转换为小写。

<script type="text/javascript">

var str="Hello World!"
document.write(str.toLocaleLowerCase())

</script>
/// hello word!
  • toLocaleUpperCase()

定义和用法

toLocaleUpperCase() 方法用于把字符串转换为大写。

<script type="text/javascript">

var str="Hello World!"
document.write(str.toLocaleUpperCase())

</script>
//HELLO WORD!
  • toString()

定义和用法

toString() 方法可把一个 Number 对象转换为一个字符串,并返回结果。

<script type="text/javascript">

var number = new Number(1337);
document.write (number.toString())

</script>

///1337
  • trim()

定义和用法

trim() 方法用于删除字符串的头尾空白符,空白符包括:空格、制表符 tab、换行符等其他空白符等。

trim() 方法不会改变原始字符串。

trim() 方法不适用于 null, undefined, Number 类型。

var str = '    I love you    ';
console.log(str.trim());
/// I love you

数组的方法总结

  • join ()

定义和用法

该方法可以将数组里的元素,通过指定的分隔符,以字符串的形式连接起来。

返回值:返回一个新的字符串, 原数组不受影响

//将数组用 - 符号连接起来
let arr = [1,2,3,4,5];
let str = arr.join('-');
console.log(str)
//str = 1-2-3-4-5;
  • split ()

定义和用法

该方法是用过指定的分隔符,将字符串分割成数组

返回值:返回一个新的数组 ,原数组不受影响

let str = wqz-ttj;
let arr = str.split('-');
console.log(arr);
// arr=['wqz','ttj'];
  • 数组的增删操作(直接改变原数组)

3. push

该方法可以在数组的最后面,添加一个或者多个元素

结构: arr.push(值)

返回值:返回的是添加元素后数组的长度.

4. pop

该方法可以在数组的最后面,删除一个元素

结构: arr.pop()

返回值:返回的是刚才删除的元素.

5. unshift

该方法可以在数组的最前面,添加一个或者几个元素

结构: arr.unshift(值)

返回值: 返回的是添加元素后数组的长度

6. shift

该方法可以在数组的最前面,删除一个元素

结构: arr.shift()

返回值: 返回的是刚才删除的元素.

 let arr =[1,2,3,4,5]
        console.log(arr.pop());//5
        console.log(arr.push(6,7)); //6
        console.log(arr.shift()); //1
        console.log(arr.unshift(6));//6
  • 数组的翻转和排序(改变数组)

reverse 翻转数组

结构:arr.reserse()

sort()

该方法可以对数组进行排序.

let arr = [1,3,5,2,4,23,122,34];
//没有参数:时按照首字符的先后排序
arr.sort()//arr=[1,122,2,23,3,34,4,5];
//有参数
arr.sort(function(a,b){
    return a-b;//从小到大排序
    return b-a;//从大到小排序
})
  • 数组的拼接与截取(原数组不受影响)

concat

该方法可以把两个数组里的元素拼接成一个新的数组

返回值: 返回拼接后的新数组

该方法和push的区别: push是直接把后一个元素原封不动的添加到第一个数组的后面

let arr1 = [1,2,3];
let arr2 = [4,5,6];
let arr = arr1.concat(arr2);//arr = [1,2,3,4,5,6];
arr1.push(arr2);//arr1 = [1,2,3,[4,5,6]];
slice 截取 出来

该方法可以从数组中截取指定的字段,返回出来

返回值:返回截取出来的字段,放到新的数组中,不改变原数组

结构1:arr.slice(start,end) ;从start下标开始截取,一直到end结束,不包括end

let arr = [0,1,2,3,4,5,6,7];
let newArr = arr.slice(0,3)//newArr = [0,1,2];

结构2:arr.slice(start) ;从start下标开始截取,一直到最后

let arr = [0,1,2,3,4,5,6,7];
let newArr = arr.slice(2)//newArr = [2,3,4,5,6,7];

结构3:arr.slice( ) ;全部截取

let arr = [0,1,2,3,4,5,6,7];
let newArr = arr.slice()//newArr = [0,1,2,3,4,5,6,7];

删除或增加元素(任意在任何位置,直接改变原数组,没有返回值

splice()

结构1: arr.splice(start,deletedCount) 纯删除

从start下标开始,删除几个

结构2: arr.splice(start,deletedCount,item) 替换

从start下标开始,删除几个,并在该位置添加item

结构3: arr.splice(start,0,item) 纯添加

从start下标开始,删除0个,并在该位置添加item,start开始全部往后移动

let arr = [1,2,6,7,8];
arr.splice(2,0,3,4,5);//arr = [1,2,3,4,5,6,7,8];

查找元素在数组中出现的位置

indexOf()

该方法用来查找元素在数组中第一次出现的位置

结构: arr.indexOf(元素)

特殊用法:

(1) arr.indexOf (ele,fromIndex),从fromIndex这个下标开始,元素第一次出现的位置

用来判断元素是否存在于数组中!

if (arr.indexOf(ele) === -1){//说明元素不存在!!
    console.log('元素不存在!)
} else {
    console.log(' 元素存在! ')
}

遍历数组方法

forEach( )

该方法等同于for循环,没有返回值

用法:

arr.forEach(function(item,index,arr){
//里面的function是一个回调函数,
//item: 数组中的每一项;
//index:item 对应的下标索引值
//arr: 就是调用该方法的数组本身
})
map( )

映射,该方法使用和forEach大致相同,但是该方法有返回值,返回一个新数组,新数组的长度和原数组长度相等

//里面的function是一个回调函数,

//item: 数组中的每一项;

//index:item 对应的下标索引值

//arr: 就是调用该方法的数组本身

用法:

let arr = [1,32,54,6,543];
let res = arr.map(function(item,index,arr){
    return item*2;
})
filter( )

filter方法: 有返回值, 过滤出符合条件的元素

let arr = [1, 3, 5, 2, 4, 6];
let res3 = arr.filter(function(item, index) {
  return item % 2 === 0;
});
console.log(res3);

过滤出布尔类型为true的项

let arr2 = [0, "", false, 1, 3, 4];
let res4 = arr2.filter(function(item, index) {
  return item;
});
console.log(res4);
findIndex

找到符合条件的项的下标,并且返回第一个

var res8 = arr4.findIndex(function(item) {
  return item.done;
});
console.log(res8);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值