分享一個利用數(shù)組的方法來做的練習題
例:學生管理系統(tǒng):定義四個數(shù)組种冬,分別存儲學生的學號闹瞧,姓名奢入,年齡,性別
首先我們要先定義四個數(shù)組(我就隨便定義了)
let nums = ['1001','1002'] ; let names = ['張三'航夺,'李四'] 蕉朵;let ages = [16,15] ; let sexs = ['男','女']
這里我們需要用到do{}while()結構阳掐,所以要實現(xiàn)let一個變量比如:let meau = 0 (用于實現(xiàn)1:查詢學生序號始衅;2:添加學生;3:修改學生缭保;4:刪除學生汛闸;0:退出系統(tǒng))
do{??
meau=prompt('---------學生管理系統(tǒng)--------------\n (// \n的意思表示顯示的時候換行)? ?1:查詢學生;2:添加學生艺骂;3:修改學生诸老;4:刪除學生;0:退出系統(tǒng)')
//然后do循環(huán)里面在套一層switch循環(huán)
switch(meau){
case ‘1’ :
//查詢學生
console.log('學號 姓名 年齡 姓名')? //用于實現(xiàn)查詢的每個學生按照這個順序展示學生的資料
for(let i =0;i
console.log(`${nums[i]}? ${names[i]} ${ages[i]} ${sexs[i]}`) //用于實現(xiàn)展示第幾個學生的資料
}
break;? ?//查詢學生結束? ? ?case'1'結束
case '2' :
//添加學生
let num = prompt('請輸入需要添加的學生學號')钳恕;let name = prompt('請輸入需要添加的學生姓名')别伏;let age = prompt('請輸入需要添加的學生年齡');let sex = prompt('請輸入需要添加的學生性別')
//這一步是為了把我們想要添加的學生信息輸入進來忧额,然后再用原有設定的數(shù)組的原始變量+上我們輸入的就可以了
nums.push(num); names.push(name); ages.push(age);sexs.push(sex)
//這個就是把我們輸入的值利用數(shù)組的push()方法加上去就可以了
// 注意添加學生這邊也可以if判定一下學號是否有重復厘肮,和case‘3’里面的if用法一樣(這邊就不寫出來啦)其次學號num可以通過isNaN(num)來判斷是否為數(shù)字通過if形式來實現(xiàn)。
break;? ? ?//第二部結束
case '3' :
//修改學生 , 利用 學號去檢索學生
let num1= prompt('請輸入需要修改學生的學號')
let index = nums.indexOf(num1)? ?// 表示我輸入的這個num1在nums里的位置睦番,這里一定要考慮到我的nums里面是否包含這么學生类茂,需要用到if判斷
if(index===-1){
alert('對不起沒有該學生')? //如果indexOf===-1 說明沒有該學生
continue;
}
nums[index]=prompt('請輸入新的學號'抡砂;names[index]=prompt('請輸入新的姓名')ages[index]=prompt('請輸入新的年齡')sexs[index]=prompt('請輸入新的性別')
break;
case '4' :
?// 刪除學生
? ? ? ? ? ? ? ? let num2 = prompt('請輸入刪除學生的學號')
? ? ? ? ? ? ? ? let index2=nom.indexOf(num2)
? ? ? ? ? ? ? ? if(index2===-1){
? ? ? ? ? ? ? ? ? ? ? ?alert('沒有該學生')
? ? ? ? ? ? ? ? ? ? ? ?continue
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? nom.splice(index2,1) ? //刪除原來的預存的學號中的所存學號,splice()方法
? ? ? ? ? ? ? ? names.splice(index2,1)
? ? ? ? ? ? ? ? ages.splice(index2,1)
? ? ? ? ? ? ? ? sexs.splice(index2,1)
? ? ? ? ? ? ? ? alert('刪除成功')
break;? // 方法和case '3'? 是一樣的我這邊就直接復制粘貼了
case '0' :
alert('成功退出系統(tǒng)')
break恬涧;
default:
alert('輸入失敗請重新輸入')
continue注益;? //注意這邊你也可以1234寫完后,直接default? 退出系統(tǒng)溯捆,但是有一個bug就是除了1234丑搔,你輸入其他的所有數(shù)都可以退出系統(tǒng),所以就有的時候需要這一步提揍,也可以不需要啤月。}while(meau!==0)//表示只要不輸入0劳跃,就一直返回循環(huán)谎仲,如果meau===0 了就退出整個大循環(huán)
二.實現(xiàn)自字符串函數(shù)
1)charAt()方法,根據(jù)字符串中字符的索引(下標)獲取對應的字符刨仑,注意:索引從0開始
let str = 'abcdefghijk'
function charAt(index){
return str[index]? ??//這個就是相當于返回字符串的第幾個字符
}
console.log(charAt(3))=>d
(2)indexOf()方法郑诺,用于從字符串中返回指定字符串第一次出現(xiàn)的位置(注意:索引從0開始夹姥,找不到返回-1)
先設置一個字符串? ? ?let str2 = 'abc你好def你好gwt'
function indexOf(str){
let index = -1? //? 先設置一個str的index位置,暫且默認位置是-1
for(let i = 0;i<=str.length;i++){
? ? ?if(str2[i]===str){
? ? ? ? ?index=i??
? ? ? ? ? break;
}
}
return str
}
然后最后輸出一下就可以了辙诞,文本如下:
最后的結果就等于你要找的那個字符串的索引位置
至于lastindexOf()方法和indexOf()的方法差不多 辙售,就是把循環(huán)變量那邊倒過來寫就可以了,i=str2.length-1;i>=0;i--
(03)// substring()方法飞涂,用于截取指定區(qū)間范圍內的字符串旦部,該方法需要傳兩個參數(shù),分別是起始位置和結束位置较店,能夠取到起始位置士八,取不到結束位置
這個和剛才的一樣也是需要我們先let 一組字符串,例:let str3 = 'abcdefghijklmn' ? //先設置一個str3字符串
然后再定義一組函數(shù)function substring(){}? ?//因為這里太多了? 我就直接截圖發(fā)進來泽西,如圖:
這個是實現(xiàn)代碼曹铃,最后的效果如下圖:
這個就是通過這一組函數(shù),最終實現(xiàn)了字符串對的substring的效果
(3)substr()方法捧杉,也是用于截取字符串陕见,它的兩參數(shù)分別是:起始位置和截取長度
代碼如圖:
實現(xiàn)代碼,注意里面有幾點一定要注意味抖,圖中注釋已經注釋好了
效果:
最終顯示的效果