2021-11-25

六、字符串和數(shù)組

目錄

1.字符的常用方法

2.字符串練習題

3.數(shù)組

4.數(shù)組的常用方法

5.數(shù)組練習題

1.字符的常用方法

1.length屬性烤蜕,返回的是字符串的長度

2.charAt()方法辕近,根據(jù)字符串中字符的索引(下標)獲取對應(yīng)的字符韵吨,注意:索引從0開始獲取字符串的中指定索引的字符,也可以通過[索引]的方式獲取

3.charCodeAt()方法移宅,用于獲取字符串中指定位置字符的Unicode編碼值,Unicode編碼是指不同國家的人归粉,使用不同的字符描述數(shù)據(jù)。這些字符計算機不認識漏峰,計算機只認識二進制數(shù)字糠悼,也就是0和1,所以將全世界范圍內(nèi)使用的常用字符都定義一個對應(yīng)的十進制數(shù)字編碼浅乔,而這個十進制的數(shù)字編碼就是Unicode編碼倔喂,再將這些十進制的Unicode編碼轉(zhuǎn)為二進制編碼傳給計算機識別

比如:A -> 65 a -> 97 你 -> 20320

4.concat()方法铝条,用于拼接字符串,通常情況下席噩,我們可以直接使用加號去拼接班缰,該方法,可以同時拼接多個字符串數(shù)據(jù)

5.fromCharCode()方法悼枢,用于將指定的Unicode編碼轉(zhuǎn)為指定字符埠忘,注意該方法是由String類型來調(diào)用的,該方法馒索,可以傳遞多個Unicode編碼

6.indexOf()方法给梅,用于從字符串中返回指定字符串第一次出現(xiàn)的位置(注意:索引從0開始,找不到返回-1)

7.lastIndexOf()方法双揪,是從后往前找,找到后包帚,下標是從前往后數(shù)(注意渔期,如果找不到返回-1)

8.slice()方法,用于截取指定區(qū)間范圍內(nèi)的字符串渴邦,該方法需要傳兩個參數(shù)疯趟,分別是起始位置和結(jié)束位置,能夠取到起始位置谋梭,取不到結(jié)束位置信峻,注意:slice()方法的參數(shù),可以傳負數(shù)瓮床,表示從后往前數(shù)索引

9.substring()方法盹舞,用于截取指定區(qū)間范圍內(nèi)的字符串,該方法需要傳兩個參數(shù)隘庄,分別是起始位置和結(jié)束位置踢步,能夠取到起始位置,取不到結(jié)束位置丑掺,注意:substring()方法參數(shù)获印,只能傳正數(shù),不能傳負數(shù)

10.substr()方法街州,也是用于截取字符串兼丰,它的兩參數(shù)分別是:起始位置和截取長度

注意:slice,substring唆缴,substr方法鳍征,如果只傳1個參數(shù),就表示從起始位置到最后全部截取

11.toLowerCase()方法面徽,用于返回字符串轉(zhuǎn)的小寫版本蟆技,注意:不是改自身

12.toUpperCase()方法,用于返回字符串的大寫版本,注意:不是改自身

13.trim()方法质礼,用于去除字符串兩端空格

14.repeat(num) 方法旺聚,用于重復指定的字符串多少次

15.split()把一個字符串分割成字符串數(shù)組,可以傳兩個參數(shù)分別為separator和limit? 提示:如果把空字符串 ("") 用作 separator眶蕉,那么 stringObject 中的每個字符之間都會被分割砰粹。注意: split() 方法不改變原始字符串。limit參數(shù)可指定返回的數(shù)組的最大長度造挽。如果設(shè)置了該參數(shù)碱璃,返回的子串不會多于這個參數(shù)指定的數(shù)組。如果沒有設(shè)置該參數(shù)饭入,整個字符串都會被分割嵌器,不考慮它的長度。

代碼:

<!DOCTYPE html>

<html>

<head>

? ? <meta charset="UTF-8">

? ? <meta http-equiv="X-UA-Compatible" content="IE=edge">

? ? <meta name="viewport" content="width=device-width, initial-scale=1.0">

? ? <title>字符的常用方法</title>

</head>

<body>

? ? <script>

? ? ? ? let s1 = "好好? 學習"

? ? ? ? // length屬性谐丢,返回的是字符串的長度爽航,空格也是字符

? ? ? ? console.log(s1.length);

? ? ? ? let s2 = "HelloWorld"

? ? ? ? // charAt()方法,根據(jù)字符串中字符的索引(下標)獲取對應(yīng)的字符乾忱,注意:索引從0開始

? ? ? ? console.log(s2.charAt(0));

? ? ? ? console.log(s2.charAt(3));

? ? ? ? // 獲取字符串的中指定索引的字符讥珍,也可以通過[索引]的方式獲取

? ? ? ? console.log(s2[0]);

? ? ? ? console.log(s2[3]);

? ? ? ? console.log('-------------------------------');

? ? ? ? // charCodeAt()方法,用于獲取字符串中指定位置字符的Unicode編碼值

? ? ? ? // A -> 65 -> 01000001窄瘟,a -> 97衷佃,你 -> 20320

? ? ? ? console.log(s2.charCodeAt(0));

? ? ? ? console.log(s1.charCodeAt(0));

? ? ? ? console.log('------------------------------');

? ? ? ? // concat()方法,用于拼接字符串蹄葱,通常情況下氏义,我們可以直接使用 加號 去拼接,該方法图云,可以同時拼接多個字符串數(shù)據(jù)

? ? ? ? let s3 = "張三"

? ? ? ? let s4 = "李四"

? ? ? ? let s5 = "王五"

? ? ? ? let s6 = s3.concat(s4)

? ? ? ? console.log(s6);

? ? ? ? console.log(s3);

? ? ? ? let s7 = s3.concat(s4,s5)

? ? ? ? console.log(s7);

? ? ? ? let s8 = s3+s4

? ? ? ? console.log(s8);

? ? ? ? let s9 = s3+s4+s5

? ? ? ? console.log(s9);

? ? ? ? console.log('-------------------------------');

? ? ? ? // fromCharCode()方法觅赊,用于將指定的Unicode編碼轉(zhuǎn)為指定字符,注意該方法是有String類型來調(diào)用的琼稻,該方法吮螺,可以傳遞多個Unicode編碼

? ? ? ? console.log(String.fromCharCode(65));

? ? ? ? console.log(String.fromCharCode(65,66,67));

? ? ? ? console.log(String.fromCharCode(12345,33678,44778));

? ? ? ? console.log('--------------以下是字符串的核心方法-----------------');

? ? ? ? // indexOf()方法,用于從字符串中返回指定字符串第一次出現(xiàn)的位置(注意:索引從0開始帕翻,找不到返回-1)

? ? ? ? let str1 = "abc你好ccc你好ddd你好eee"

? ? ? ? console.log(str1.indexOf('你好'));

? ? ? ? console.log(str1.indexOf('你好呀'));

? ? ? ? console.log('------------');

? ? ? ? // lastIndexOf()方法鸠补,是從后往前找,找到后嘀掸,下標是從前往后數(shù)(注意紫岩,如果找不到返回-1)

? ? ? ? console.log(str1.lastIndexOf('你好'));

? ? ? ? console.log(str1.lastIndexOf('你好呀'));

? ? ? ? console.log('------------');

? ? ? ? // slice()方法,用于截取指定區(qū)間范圍內(nèi)的字符串睬塌,該方法需要傳兩個參數(shù)泉蝌,分別是起始位置和結(jié)束位置歇万,能夠取到起始位置,取不到結(jié)束位置勋陪,

? ? ? ? // 注意:slice()方法的參數(shù)贪磺,可以傳負數(shù),表示從后往前數(shù)索引

? ? ? ? console.log(str1.slice(3,6));

? ? ? ? // 如果只傳一個參數(shù)诅愚,從起始位置往后全部截取

? ? ? ? console.log(str1.slice(3));

? ? ? ? console.log(str1.slice(-6,-3));

? ? ? ? console.log('------------');

? ? ? ? // substring()方法寒锚,用于截取指定區(qū)間范圍內(nèi)的字符串,該方法需要傳兩個參數(shù)违孝,分別是起始位置和結(jié)束位置刹前,能夠取到起始位置,取不到結(jié)束位置雌桑,

? ? ? ? // 注意:substring()方法參數(shù)喇喉,只能傳正數(shù),不能傳負數(shù)

? ? ? ? console.log(str1.substring(3,6));

? ? ? ? console.log(str1.substring(3));

? ? ? ? console.log(str1.substring(-6,-3));

? ? ? ? console.log('------------');

? ? ? ? // substr()方法校坑,也是用于截取字符串拣技,它的兩參數(shù)分別是:起始位置和截取長度

? ? ? ? console.log(str1.substr(3,6));

? ? ? ? // 只傳一個參數(shù),也是從起始位置往后全部截取

? ? ? ? console.log(str1.substr(3));

? ? ? ? console.log('------------');

? ? ? ? // toLowerCase()方法,用于返回字符串轉(zhuǎn)的小寫版本大渤,注意:不是改自身

? ? ? ? // toUpperCase()方法泵三,用于返回字符串的大寫版本较曼,注意:不是改自身

? ? ? ? let str2 = 'AbCdEfG'

? ? ? ? console.log(str2.toLowerCase());

? ? ? ? console.log(str2.toUpperCase());

? ? ? ? console.log('------------');

? ? ? ? // trim()方法萍歉,用于去除字符串兩端空格

? ? ? ? let str3 = '? abc? cba? '

? ? ? ? console.log(str3.length);

? ? ? ? // 注意:trim()方法,只能去掉字符串兩端的空格抚垄,中間的空格無法去除浙滤。

? ? ? ? console.log(str3.trim().length);

? ? ? ? let str4 = "adadacosd"

? ? ? ? //不傳任何參數(shù)則默認分割為長度為1的數(shù)組

? ? ? ? let arr = str4.split()

? ? ? ? console.log(arr);

? ? ? ? //只傳引號分割每個字符揖膜,包括空格

? ? ? ? let arr1 = str4.split("")

? ? ? ? console.log(arr1);

? ? ? ? //傳引號和第二個參數(shù)表示該數(shù)組長度為6,即取上個數(shù)組結(jié)果前6個

? ? ? ? let arr2 = str4.split("",6)

? ? ? ? console.log(arr2);

? ? ? ? let str5 = "name:張三&age:25&gender:男&enduction:本科"

? ? ? ? //當字符串中由某個字符連接時薄啥,如果不想要該字符克握,可以使用這個字符作為分隔符去除)

? ? ? ? let arr3 = str5.split("&")

? ? ? ? console.log(arr3);

? ? </script>

</body>

</html>

控制臺顯示為:

2.字符串練習題

代碼:

1.輸入郵箱地址,驗證郵箱格式是否正確

<!DOCTYPE html>

<html>

<head>

? ? <meta charset="UTF-8">

? ? <meta http-equiv="X-UA-Compatible" content="IE=edge">

? ? <meta name="viewport" content="width=device-width, initial-scale=1.0">

? ? <title>字符串練習1</title>

</head>

<body>

? ? <script>

? ? ? ? // 輸入郵箱地址,驗證郵箱格式是否正確

? ? ? ? // 郵箱格式:必須包含@符號切心,必須包含.符號,.符號必須在@符號的后面材原,而且中間至少再隔一位

? ? ? ? // @符號不能是第一位沸久,.符號不能是最后一位

? ? ? ? // 比如:zhangsan@123.com

? ? ? ? let email = prompt('請輸入郵箱:')

? ? ? ? // 獲取郵箱中@符號的位置

? ? ? ? let index1 = email.indexOf('@')

? ? ? ? // 獲取郵箱中最后一個.符號的位置

? ? ? ? let index2 = email.lastIndexOf('.')

? ? ? ? // index1>0 表示必須包含@符號,并且還不能是第一位

? ? ? ? // index2<email.length-1 表示必須包含.符號余蟹,并且還不能是最后一位

? ? ? ? // index2-1>index1 表示.符號必須在@符號的后面卷胯,而且中間至少隔一位

? ? ? ? if(index1>0 && index2<email.length-1 && index2-1>index1){

? ? ? ? ? ? alert('郵箱格式正確')

? ? ? ? }else{

? ? ? ? ? ? alert('郵箱格式錯誤')

? ? ? ? }

? ? </script>

</body>

</html>

彈窗顯示為:

2.輸入登錄名和密碼,要求登錄名長度為2-4位威酒,密碼長度是6-10位窑睁,用戶名不能是全數(shù)字

代碼:

<!DOCTYPE html>

<html lang="en">

<head>

? ? <meta charset="UTF-8">

? ? <meta http-equiv="X-UA-Compatible" content="IE=edge">

? ? <meta name="viewport" content="width=device-width, initial-scale=1.0">

? ? <title>字符串練習2</title>

</head>

<body>

? ? <script>

? ? ? ? // 輸入登錄名和密碼挺峡,要求登錄名長度為2-4位,密碼長度是6-10位担钮,用戶名不能是全數(shù)字

? ? ? ? let loginId = prompt('請輸入登錄名(2-4位):')

? ? ? ? let loginPwd = prompt('請輸入密碼(6-10位):')

? ? ? ? let len1 = loginId.length? //登錄名長度

? ? ? ? let len2 = loginPwd.length? //密碼長度

? ? ? ? //先判斷登錄名

? ? ? ? if(len1>=2 && len1<=4 && isNaN(loginId)){

? ? ? ? ? ? //再判斷密碼

? ? ? ? ? ? if(len2>=6 && len2<=10){

? ? ? ? ? ? ? ? alert('登錄成功')

? ? ? ? ? ? }else{

? ? ? ? ? ? ? ? alert('密碼長度是6-10位')

? ? ? ? ? ? }

? ? ? ? }else{

? ? ? ? ? ? alert('登錄名長度必須是2-4位橱赠,登錄名不能是全數(shù)字')

? ? ? ? }

? ? </script>

</body>

</html>

彈窗顯示為:

3.輸入手機號碼,要求長度必須是11位箫津,第一位必須是1狭姨,后面的必須是數(shù)字

代碼:

<!DOCTYPE html>

<html>

<head>

? ? <meta charset="UTF-8">

? ? <meta http-equiv="X-UA-Compatible" content="IE=edge">

? ? <meta name="viewport" content="width=device-width, initial-scale=1.0">

? ? <title>字符串練習3</title>

</head>

<body>

? ? <script>

? ? ? ? // 輸入手機號碼,要求長度必須是11位苏遥,第一位必須是1饼拍,后面的必須是數(shù)字

? ? ? ? let tel = prompt('請輸入手機號:')

? ? ? ? let len = tel.length? //獲取手機號的長度

? ? ? ? let first = tel[0]? ? //獲取第一位數(shù)字

? ? ? ? let next = tel.slice(1)? //從第二位到最后全部截取

? ? ? ? //粗略的判斷

? ? ? ? /* if(len==11 && first==1 && !isNaN(next)){

? ? ? ? ? ? alert('手機號碼正確')

? ? ? ? }else{

? ? ? ? ? ? alert('手機號碼錯誤')

? ? ? ? } */

? ? ? ? //詳細的判斷

? ? ? ? if(len!=11){

? ? ? ? ? ? alert('手機號碼必須是11位')

? ? ? ? }else if(first!=1){

? ? ? ? ? ? alert('手機號碼的第一位必須是1')

? ? ? ? }else if(isNaN(next)){

? ? ? ? ? ? alert('手機號碼必須是全數(shù)字')

? ? ? ? }else{

? ? ? ? ? ? alert('手機號碼正確')

? ? ? ? }

? ? </script>

</body>

</html>

彈窗顯示為:

3.數(shù)組

變量:就是在內(nèi)存中,開辟一個合適的空間暖眼,存儲一份對應(yīng)的數(shù)據(jù)

數(shù)組:就是在內(nèi)層中惕耕,開辟一段連續(xù)的空間,存儲一組數(shù)據(jù)

創(chuàng)建數(shù)組的第一種方式诫肠,使用數(shù)組的構(gòu)造函數(shù)司澎,new一個數(shù)組類型的對象

let arr1 = new Array(5)

創(chuàng)建數(shù)組的第二種方式:使用字面量方式直接定義

let arr2 = ["hello","world"]

length屬性,返回的是數(shù)組的長度

根據(jù)數(shù)組的下標(索引)栋豫,向數(shù)組中存放數(shù)據(jù)挤安,數(shù)組中可以存放任意類型的數(shù)據(jù)

注意:在創(chuàng)建數(shù)組對象時,可以給一個固定的長度丧鸯,但是沒有意義蛤铜,因為在js中數(shù)組的長度是可以隨意變化的

代碼:

<!DOCTYPE html>

<html>

<head>

? ? <meta charset="UTF-8">

? ? <meta http-equiv="X-UA-Compatible" content="IE=edge">

? ? <meta name="viewport" content="width=device-width, initial-scale=1.0">

? ? <title>數(shù)組</title>

</head>

<body>

? ? <script>

? ? ? ? // 數(shù)組:就是在內(nèi)存中,開辟一段連續(xù)的空間丛肢,存儲一組數(shù)據(jù)

? ? ? ? // 如果需要維護多組數(shù)據(jù)围肥,之前我們需要定義很多個變量,維護起來會相對比較麻煩

? ? ? ? let score1 = 55

? ? ? ? let score2 = 66

? ? ? ? let score3 = 77

? ? ? ? let score4 = 88

? ? ? ? let score5 = 99

? ? ? ? // 通過變量名獲取變量中保存的數(shù)據(jù)

? ? ? ? let sum1 = score1+score2

? ? ? ? console.log(sum1);

? ? ? ? console.log('--------------------------');

? ? ? ? // 現(xiàn)在可以通過一個數(shù)組統(tǒng)一維護

? ? ? ? let scores = new Array(5)? //創(chuàng)建一個長度為5的數(shù)組空間(在內(nèi)存中連續(xù)開辟了一個長度為5的存儲空間)

? ? ? ? // 通過數(shù)組的下標蜂怎,往數(shù)組中存儲數(shù)據(jù)

? ? ? ? scores[0] = 55

? ? ? ? scores[3] = 66

? ? ? ? // 通過數(shù)組的下標穆刻,從數(shù)組的指定空間里面獲取數(shù)據(jù)

? ? ? ? let sum2 = scores[0] + scores[3]

? ? ? ? console.log(sum2);

? ? ? ? console.log(scores);

? ? ? ? console.log('-------------------------');

? ? ? ? // 注意:在其他的編程語言中,定義數(shù)組時杠步,必須要明確數(shù)組的長度氢伟,但是,js中不需要幽歼。

? ? ? ? // 在js中朵锣,數(shù)組的長度是彈性的,

? ? ? ? let scores2 = new Array()

? ? ? ? scores2[0] = 55

? ? ? ? scores2[8] = 66

? ? ? ? console.log(scores2);

? ? ? ? console.log('-------------------------');

? ? ? ? // 在js中甸私,定義數(shù)組有兩種方式:1.采用數(shù)組的構(gòu)造函數(shù)new诚些,2.使用字面量直接賦值

? ? ? ? let scores3 = new Array('蘋果','香蕉')

? ? ? ? console.log(scores3);

? ? ? ? let scores4 = ['葡萄','榴蓮']

? ? ? ? console.log(scores4);

? ? ? ? // length屬性,返回數(shù)組的長度

? ? ? ? console.log(scores4.length);

? ? </script>

</body>

</html>

控制臺顯示為:

4.數(shù)組的常用方法

1.concat()方法皇型,用于合并兩個或多個數(shù)組诬烹,返回一個全新的數(shù)組

2.copyWithin()方法助析,從數(shù)組的指定位置拷貝元素到數(shù)組的另一個指定位置中

注意:第一個參數(shù)是目標位置,第二個參是拷貝元素的起始位椅您,第三個參數(shù)是拷貝元素的結(jié)束位置

如果不設(shè)置第三個參數(shù)外冀,拷貝元素結(jié)束位置就是目標位置的前一位

3.fill()方法,使用一個固定值來填充數(shù)組

4.includes()方法掀泳,從數(shù)組中檢查指定的數(shù)據(jù)是否存在雪隧,存在返回true,不存在返回false

5.indexOf()方法员舵,從數(shù)組中檢查指定的數(shù)據(jù)的位置(從前往后找第一個)脑沿,不存在返回-1

6.lastIndexOf()方法,從數(shù)組中檢查指定的數(shù)據(jù)的位置(從后往前找第一個)马僻,不存在返回-1

7.isArray()方法庄拇,用于檢查指定的對象是否是數(shù)組,注意:該方法屬于Array類型韭邓,不屬于Arrary的對象

8.join()方法措近,用于將一個數(shù)組根據(jù)某個字符串拼接成字符串,該方法不傳參數(shù)女淑,默認是根據(jù)逗號拼接

9.push()方法瞭郑,向數(shù)組的末尾添加一個或更多元素,并返回新的長度

10.pop()方法鸭你,刪除數(shù)組的最后一個元素并返回刪除的元素

11.unshift()方法屈张,向數(shù)組的開頭添加一個或更多元素,并返回新的長度

12.shift()方法袱巨,刪除并返回數(shù)組的第一個元素

13.reverse()方法阁谆,反轉(zhuǎn)數(shù)組的元素順序

14.slice()方法,選取數(shù)組的一部分愉老,并返回一個新數(shù)組场绿。注意:該方法的第一個參數(shù)是起始位置,第二個參數(shù)是結(jié)束位置(取不到結(jié)束位置)俺夕。 第二個參數(shù)可以省略裳凸,表示從起始位置到最后全部返回

15.splice()方法贱鄙,從數(shù)組中添加或刪除元素? 劝贸。如何刪除顶考,該方法需要傳兩個參數(shù):第一個是起始位置蜜唾,第二個是刪除長度 别垮。如果第二個參數(shù)不傳犬绒,就表示從起始位置往后全部刪除暮的。刪除方法,刪除的是原始數(shù)組里面的數(shù)據(jù)藏研,返回的是刪除的數(shù)據(jù)孽锥。該方法也可以傳三個參數(shù),第三個參數(shù)就是刪除部分插入的新內(nèi)容

16.toString()方法引有,把數(shù)組轉(zhuǎn)換為字符串瓣颅,并返回結(jié)果

代碼:

<!DOCTYPE html>

<html>

<head>

? ? <meta charset="UTF-8">

? ? <meta http-equiv="X-UA-Compatible" content="IE=edge">

? ? <meta name="viewport" content="width=device-width, initial-scale=1.0">

? ? <title>數(shù)組的常用方法</title>

</head>

<body>

? ? <script>

? ? ? ? // concat()方法,用于合并兩個或多個數(shù)組譬正,返回一個全新的數(shù)組

? ? ? ? let arr1 = [11,22,33]

? ? ? ? let arr2 = [44,55,66]

? ? ? ? let arr3 = arr1.concat(arr2)

? ? ? ? console.log(arr3);

? ? ? ? console.log('----------------------');

? ? ? ? /*

? ? ? ? ? ? copyWithin()方法宫补,從數(shù)組的指定位置拷貝元素到數(shù)組的另一個指定位置中

? ? ? ? ? ? 注意:第一個參數(shù)是目標位置,第二個參是拷貝元素的起始位曾我,第三個參數(shù)是拷貝元素的結(jié)束位置

? ? ? ? ? ? 如果不設(shè)置第三個參數(shù)粉怕,拷貝元素結(jié)束位置就是目標位置的前一位

? ? ? ? */

? ? ? ? let arr4 = [11,22,33,44,55,66,77,88]

? ? ? ? arr4.copyWithin(2,4,6)

? ? ? ? console.log(arr4);

? ? ? ? console.log('----------------------');

? ? ? ? // fill()方法,使用一個固定值來填充數(shù)組

? ? ? ? let arr5 = new Array(5)

? ? ? ? arr5.fill(50)

? ? ? ? console.log(arr5);

? ? ? ? console.log('----------------------');

? ? ? ? // includes()方法抒巢,從數(shù)組中檢查指定的數(shù)據(jù)是否存在贫贝,存在返回true,不存在返回false

? ? ? ? // indexOf()方法蛉谜,從數(shù)組中檢查指定的數(shù)據(jù)的位置(從前往后找第一個)稚晚,不存在返回-1

? ? ? ? // lastIndexOf()方法,從數(shù)組中檢查指定的數(shù)據(jù)的位置(從后往前找第一個)型诚,不存在返回-1

? ? ? ? let arr6 = [11,22,33,44,55,44,77,88]

? ? ? ? console.log(arr6.includes(44));

? ? ? ? console.log(arr6.includes(38));

? ? ? ? console.log(arr6.indexOf(44));

? ? ? ? console.log(arr6.indexOf(38));

? ? ? ? console.log(arr6.lastIndexOf(44));

? ? ? ? console.log(arr6.lastIndexOf(38));

? ? ? ? console.log('----------------------');

? ? ? ? // isArray()方法蜈彼,用于檢查指定的對象是否是數(shù)組,注意:該方法屬于Array類型俺驶,不屬于Arrary的對象

? ? ? ? let str1 = 'hello'

? ? ? ? console.log(Array.isArray(str1));

? ? ? ? console.log(Array.isArray(arr6));

? ? ? ? console.log('----------------------');

? ? ? ? // join()方法幸逆,用于將一個數(shù)組根據(jù)某個字符串拼接成字符串,該方法不傳參數(shù)暮现,默認是根據(jù)逗號拼接

? ? ? ? console.log(arr6.join('你好呀'));

? ? ? ? console.log(arr6.join(''));

? ? ? ? console.log(arr6.join());

? ? ? ? console.log('-----------以下是核心方法还绘,必須無條件掌握-----------');

? ? ? ? let arr7 = [11,22,33]

? ? ? ? // push()方法,向數(shù)組的末尾添加一個或更多元素栖袋,并返回新的長度

? ? ? ? arr7.push(44)

? ? ? ? console.log(arr7);

? ? ? ? // pop()方法拍顷,刪除數(shù)組的最后一個元素并返回刪除的元素

? ? ? ? arr7.pop()

? ? ? ? console.log(arr7);

? ? ? ? // unshift()方法,向數(shù)組的開頭添加一個或更多元素塘幅,并返回新的長度

? ? ? ? arr7.unshift(55)

? ? ? ? console.log(arr7);

? ? ? ? // shift()方法昔案,刪除并返回數(shù)組的第一個元素

? ? ? ? arr7.shift()

? ? ? ? console.log(arr7);

? ? ? ? // reverse()方法,反轉(zhuǎn)數(shù)組的元素順序

? ? ? ? arr7.reverse()

? ? ? ? console.log(arr7);

? ? ? ? console.log('----------------------');

? ? ? ? /*

? ? ? ? ? ? slice()方法电媳,選取數(shù)組的一部分踏揣,并返回一個新數(shù)組

? ? ? ? ? ? 注意:該方法的第一個參數(shù)是起始位置,第二個參數(shù)是結(jié)束位置(取不到結(jié)束位置)

? ? ? ? ? ? 第二個參數(shù)可以省略匾乓,表示從起始位置到最后全部返回

? ? ? ? */

? ? ? ? let arr8 = [11,22,33,44,55,66,77,88,99]

? ? ? ? console.log(arr8.slice(3,6));

? ? ? ? console.log(arr8.slice(3));

? ? ? ? // repeat()是字符串的方法捞稿,用于重復指定的字符串多少次

? ? ? ? console.log('-'.repeat(30));

? ? ? ? /*

? ? ? ? ? ? splice()方法,從數(shù)組中添加或刪除元素

? ? ? ? ? ? 如何刪除,該方法需要傳兩個參數(shù):第一個是起始位置娱局,第二個是刪除長度

? ? ? ? ? ? 如果第二個參數(shù)不傳彰亥,就表示從起始位置往后全部刪除

? ? ? ? ? ? 刪除方法,刪除的是原始數(shù)組里面的數(shù)據(jù)衰齐,返回的是刪除的數(shù)據(jù)

? ? ? ? ? ? 該方法也可以傳三個參數(shù)任斋,第三個參數(shù)就是刪除部分插入的新內(nèi)容

? ? ? ? */

? ? ? ? // arr8.splice(4,3)? //刪除指定區(qū)間的數(shù)據(jù)

? ? ? ? // arr8.splice(4)? ? //從起始位置往后全部刪除

? ? ? ? // arr8.splice(4,3,'哈哈')? //刪除部分的內(nèi)容替換成新的內(nèi)容(修改數(shù)組的內(nèi)容)

? ? ? ? arr8.splice(4,0,'哈哈')? ? //在數(shù)組的指定位置插入內(nèi)容

? ? ? ? console.log(arr8);

? ? ? ? // toString()方法,把數(shù)組轉(zhuǎn)換為字符串耻涛,并返回結(jié)果

? ? ? ? // 效果跟join方法不傳參數(shù)一樣仁卷。

? ? ? ? console.log(arr8.toString());

? ? </script>

</body>

</html>

控制臺顯示為:

5.數(shù)組練習題

1.如何反轉(zhuǎn)字符串? (先將字符串轉(zhuǎn)為數(shù)組,再將數(shù)組反轉(zhuǎn)犬第,然后將反轉(zhuǎn)后的數(shù)組锦积,再轉(zhuǎn)為字符串)

代碼:

<!DOCTYPE html>

<html>

<head>

? ? <meta charset="UTF-8">

? ? <meta http-equiv="X-UA-Compatible" content="IE=edge">

? ? <meta name="viewport" content="width=device-width, initial-scale=1.0">

? ? <title>如何反轉(zhuǎn)字符串</title>

</head>

<body>

? ? <script>

? ? ? ? // split()方法,用于將字符串根據(jù)某個字符串打散成數(shù)組

? ? ? ? let s1 = "我喜歡吃蘋果歉嗓,喜歡吃桃子丰介,喜歡吃香蕉"

? ? ? ? // 將字符串根據(jù)“喜歡”打散成數(shù)組

? ? ? ? console.log(s1.split('喜歡'));

? ? ? ? // 將字符串中的所有字符打散成數(shù)組

? ? ? ? console.log(s1.split(''));

? ? ? ? console.log('---------------------------');

? ? ? ? let str = '好好學習,天天向上'

? ? ? ? // 01.將字符串打散成數(shù)組

? ? ? ? let arr = str.split('')

? ? ? ? // 02.數(shù)組反轉(zhuǎn)一下

? ? ? ? arr.reverse()

? ? ? ? // 03.將數(shù)組拼接陳字符串

? ? ? ? let str2 = arr.join('')

? ? ? ? console.log(str2);

? ? ? ? //字符串和數(shù)組的所有方法鉴分,可以鏈式調(diào)用

? ? ? ? console.log(str.split('').reverse().join(''));

</script>

</body>

</html>

控制臺顯示為:

2.學生管理系統(tǒng)? (定義四個數(shù)組哮幢,分別存儲學生的學號,姓名志珍,年齡橙垢,性別)

代碼:

<!DOCTYPE html>

<html>

<head>

? ? <meta charset="UTF-8">

? ? <meta http-equiv="X-UA-Compatible" content="IE=edge">

? ? <meta name="viewport" content="width=device-width, initial-scale=1.0">

? ? <title>學生管理系統(tǒng)</title>

</head>

<body>

? ? <script>

? ? ? ? // 定義4個數(shù)組,管理學生的:學號伦糯,姓名柜某,年齡,性別

? ? ? ? let nos = ['1001', '1002']

? ? ? ? let names = ['張三', '李四']

? ? ? ? let ages = [22, 23]

? ? ? ? let sexs = ['男', '女']

? ? ? ? let menu = 0? //定義一個菜單變量

? ? ? ? do {

? ? ? ? ? ? menu = prompt('******學生管理系統(tǒng)******\n1.查看學生信息 2.添加學生信息 3.修改學生信息 4.刪除學生 0.退出系統(tǒng)')

? ? ? ? ? ? switch (menu) {

? ? ? ? ? ? ? ? case '1':

? ? ? ? ? ? ? ? ? ? console.log('*******************查詢學生信息*******************');

? ? ? ? ? ? ? ? ? ? console.log('學號\t姓名\t年齡\t性別');

? ? ? ? ? ? ? ? ? ? //循環(huán)數(shù)組敛纲,輸出所有的學生信息

? ? ? ? ? ? ? ? ? ? for (let i = 0; i < nos.length; i++) {

? ? ? ? ? ? ? ? ? ? ? ? console.log(`${nos[i]}\t${names[i]}\t${ages[i]}\t\t${sexs[i]}`);

? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? break;

? ? ? ? ? ? ? ? case '2':

? ? ? ? ? ? ? ? ? ? //輸入學生基本信息

? ? ? ? ? ? ? ? ? ? //輸入學號

? ? ? ? ? ? ? ? ? ? let no = prompt('請輸入學號')

? ? ? ? ? ? ? ? ? ? //判斷學號不能重復

? ? ? ? ? ? ? ? ? ? if (nos.includes(no)) {

? ? ? ? ? ? ? ? ? ? ? ? alert('學號不能重復')

? ? ? ? ? ? ? ? ? ? ? ? continue? //跳過本次循環(huán)

? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? //輸入姓名

? ? ? ? ? ? ? ? ? ? let name = prompt('請輸入姓名')

? ? ? ? ? ? ? ? ? ? //輸入年齡

? ? ? ? ? ? ? ? ? ? let age = prompt('請輸入年齡')

? ? ? ? ? ? ? ? ? ? if (isNaN(age)) {

? ? ? ? ? ? ? ? ? ? ? ? alert('年齡必須是數(shù)字')

? ? ? ? ? ? ? ? ? ? ? ? continue

? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? //輸入性別

? ? ? ? ? ? ? ? ? ? let sex = prompt('請輸入性別')

? ? ? ? ? ? ? ? ? ? if (!(sex == '男' || sex == '女')) {

? ? ? ? ? ? ? ? ? ? ? ? alert('性別只能是 男 或 女')

? ? ? ? ? ? ? ? ? ? ? ? continue

? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? //將學生的基本信息喂击,添加到數(shù)組中

? ? ? ? ? ? ? ? ? ? nos.push(no)

? ? ? ? ? ? ? ? ? ? names.push(name)

? ? ? ? ? ? ? ? ? ? ages.push(age)

? ? ? ? ? ? ? ? ? ? sexs.push(sex)

? ? ? ? ? ? ? ? ? ? alert('添加成功!')

? ? ? ? ? ? ? ? ? ? break;

? ? ? ? ? ? ? ? case '3':

? ? ? ? ? ? ? ? ? ? // 輸入學號淤翔,根據(jù)學號翰绊,找到它在數(shù)組中的位置

? ? ? ? ? ? ? ? ? ? let no1 = prompt('請輸入需要修改學生的學號:')

? ? ? ? ? ? ? ? ? ? //查找學號在數(shù)組中的位置

? ? ? ? ? ? ? ? ? ? let index = nos.indexOf(no1)

? ? ? ? ? ? ? ? ? ? //判斷該學號是否存在

? ? ? ? ? ? ? ? ? ? if (index == -1) {

? ? ? ? ? ? ? ? ? ? ? ? alert('您輸入的學號不存在!')

? ? ? ? ? ? ? ? ? ? ? ? continue

? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? //輸入姓名

? ? ? ? ? ? ? ? ? ? let name1 = prompt('請重新輸入姓名')

? ? ? ? ? ? ? ? ? ? //輸入年齡

? ? ? ? ? ? ? ? ? ? let age1 = prompt('請重新輸入年齡')

? ? ? ? ? ? ? ? ? ? if (isNaN(age1)) {

? ? ? ? ? ? ? ? ? ? ? ? alert('年齡必須是數(shù)字')

? ? ? ? ? ? ? ? ? ? ? ? continue

? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? //輸入性別

? ? ? ? ? ? ? ? ? ? let sex1 = prompt('請重新輸入性別')

? ? ? ? ? ? ? ? ? ? if (!(sex1 == '男' || sex1 == '女')) {

? ? ? ? ? ? ? ? ? ? ? ? alert('性別只能是 男 或 女')

? ? ? ? ? ? ? ? ? ? ? ? continue

? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? // 更新數(shù)組中的信息

? ? ? ? ? ? ? ? ? ? names[index] = name1

? ? ? ? ? ? ? ? ? ? ages[index] = age1

? ? ? ? ? ? ? ? ? ? sexs[index] = sex1

? ? ? ? ? ? ? ? ? ? alert('修改成功旁壮!')

? ? ? ? ? ? ? ? ? ? break;

? ? ? ? ? ? ? ? case '4':

? ? ? ? ? ? ? ? ? ? // 輸入學號监嗜,根據(jù)學號,找到它在數(shù)組中的位置

? ? ? ? ? ? ? ? ? ? let no2 = prompt('請輸入需要修改學生的學號:')

? ? ? ? ? ? ? ? ? ? //查找學號在數(shù)組中的位置

? ? ? ? ? ? ? ? ? ? let index2 = nos.indexOf(no2)

? ? ? ? ? ? ? ? ? ? //判斷該學號是否存在

? ? ? ? ? ? ? ? ? ? if (index2 == -1) {

? ? ? ? ? ? ? ? ? ? ? ? alert('您輸入的學號不存在抡谐!')

? ? ? ? ? ? ? ? ? ? ? ? continue

? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? // 刪除數(shù)組中對應(yīng)的數(shù)據(jù)

? ? ? ? ? ? ? ? ? ? nos.splice(index2,1)

? ? ? ? ? ? ? ? ? ? names.splice(index2,1)

? ? ? ? ? ? ? ? ? ? ages.splice(index2,1)

? ? ? ? ? ? ? ? ? ? sexs.splice(index2,1)

? ? ? ? ? ? ? ? ? ? alert('刪除成功裁奇!')

? ? ? ? ? ? ? ? ? ? break;

? ? ? ? ? ? ? ? default:

? ? ? ? ? ? ? ? ? ? alert('成功退出系統(tǒng)!歡迎下次使用童叠!')

? ? ? ? ? ? ? ? ? ? break;

? ? ? ? ? ? }

? ? ? ? } while (menu != 0);

? ? </script>

</body>

</html>

彈窗顯示為:

3.隨機生成一組雙色球號碼框喳,存放到數(shù)組中

雙色球號碼的規(guī)則是:前六組號碼是1-32之間不重復的隨機數(shù),第七組號碼是1-16之間的隨機數(shù)

代碼:

<!DOCTYPE html>

<html>

<head>

? ? <meta charset="UTF-8">

? ? <meta http-equiv="X-UA-Compatible" content="IE=edge">

? ? <meta name="viewport" content="width=device-width, initial-scale=1.0">

? ? <title>作業(yè)1</title>

</head>

<body>

? ? <script>

? ? ? ? // 隨機生成一組雙色球號碼厦坛,存放到數(shù)組中

? ? ? ? // 雙色球號碼的規(guī)則是:前六組號碼是1-32之間不重復的隨機數(shù)五垮,第七組號碼是1-16之間的隨機數(shù)

? ? ? ? let nums = []

? ? ? ? //循環(huán)6次,生成前6組號碼?

? ? ? ? for(let i=0;i<6;i++){

? ? ? ? ? ? let num = parseInt(Math.random()*32)+1

? ? ? ? ? ? // 判斷每次生成的隨機數(shù)杜秸,在數(shù)組中是否已經(jīng)存在放仗,

? ? ? ? ? ? if(!nums.includes(num)){

? ? ? ? ? ? ? ? // 如果不存在添加到數(shù)組中

? ? ? ? ? ? ? ? nums.push(num)

? ? ? ? ? ? }else{

? ? ? ? ? ? ? ? // 如果存在,重新再生成一次

? ? ? ? ? ? ? ? i--

? ? ? ? ? ? }

? ? ? ? }

? ? ? ? nums[6] = parseInt(Math.random()*16)+1

? ? ? ? console.log(nums);

? ? </script>

</body>

</html>

控制臺顯示為:

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末撬碟,一起剝皮案震驚了整個濱河市诞挨,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌呢蛤,老刑警劉巖惶傻,帶你破解...
    沈念sama閱讀 222,104評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異其障,居然都是意外死亡银室,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評論 3 399
  • 文/潘曉璐 我一進店門励翼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蜈敢,“玉大人,你說我怎么就攤上這事汽抚∽ハ粒” “怎么了?”我有些...
    開封第一講書人閱讀 168,697評論 0 360
  • 文/不壞的土叔 我叫張陵造烁,是天一觀的道長否过。 經(jīng)常有香客問我,道長惭蟋,這世上最難降的妖魔是什么叠纹? 我笑而不...
    開封第一講書人閱讀 59,836評論 1 298
  • 正文 為了忘掉前任,我火速辦了婚禮敞葛,結(jié)果婚禮上誉察,老公的妹妹穿的比我還像新娘。我一直安慰自己惹谐,他們只是感情好持偏,可當我...
    茶點故事閱讀 68,851評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著氨肌,像睡著了一般鸿秆。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上怎囚,一...
    開封第一講書人閱讀 52,441評論 1 310
  • 那天卿叽,我揣著相機與錄音桥胞,去河邊找鬼。 笑死考婴,一個胖子當著我的面吹牛贩虾,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播沥阱,決...
    沈念sama閱讀 40,992評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼缎罢,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了考杉?” 一聲冷哼從身側(cè)響起策精,我...
    開封第一講書人閱讀 39,899評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎崇棠,沒想到半個月后咽袜,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,457評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡枕稀,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,529評論 3 341
  • 正文 我和宋清朗相戀三年酬蹋,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片抽莱。...
    茶點故事閱讀 40,664評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡范抓,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出食铐,到底是詐尸還是另有隱情匕垫,我是刑警寧澤,帶...
    沈念sama閱讀 36,346評論 5 350
  • 正文 年R本政府宣布虐呻,位于F島的核電站象泵,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏斟叼。R本人自食惡果不足惜偶惠,卻給世界環(huán)境...
    茶點故事閱讀 42,025評論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望朗涩。 院中可真熱鬧忽孽,春花似錦、人聲如沸谢床。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽识腿。三九已至出革,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間渡讼,已是汗流浹背骂束。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評論 1 272
  • 我被黑心中介騙來泰國打工耳璧, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人展箱。 一個月前我還...
    沈念sama閱讀 49,081評論 3 377
  • 正文 我出身青樓旨枯,卻偏偏與公主長得像,于是被迫代替她去往敵國和親析藕。 傳聞我的和親對象是個殘疾皇子召廷,可洞房花燭夜當晚...
    茶點故事閱讀 45,675評論 2 359

推薦閱讀更多精彩內(nèi)容

  • 表單組件 1凳厢、picker 選擇器組件 range:指定一個數(shù)組(指定一份展示的數(shù)據(jù))账胧。 range-key:如果...
    陸小季閱讀 194評論 0 0
  • https://blog.csdn.net/feiyunjs/article/details/94722766 /...
    FsdSoyu閱讀 976評論 0 0
  • 數(shù)組的常用方法 // concat()方法,用于合并兩個或多個數(shù)組先紫,返回一個全新的數(shù)組 let arr1 = [1...
    晚_f2a9閱讀 161評論 0 0
  • 在實際開發(fā)中我們經(jīng)常需要將對象轉(zhuǎn)為字符串來傳遞數(shù)據(jù)治泥,傳遞完畢后再以對象的方式顯示,所以必須掌握相互轉(zhuǎn)換的方法 一遮精、...
    錦衣夜行001閱讀 1,279評論 0 1
  • 1.concat()屬性 作用:用于合并或者多個數(shù)組 語法: let arr1 = [1, 2, 3] let a...
    錦衣夜行001閱讀 438評論 1 3