數組
1.數組:就是在內層中先巴,開辟一段連續(xù)的空間趴荸,存儲一組數據
如果需要維護多組數據碴开,之前我們需要定義很多個變量歹苦,維護會相對比較麻煩
? ? ? ? let score1 = 55;
? ? ? ? let score2 = 66;
? ? ? ? let score3 = 77;
? ? ? ? let score4 = 88;
? ? ? ? let score5 = 99;
? ? ? ? //通過變量名獲取變量中保存的數據
? ? ? ? let sum1 = score1+score2
? ? ? ? console.log(sum1);? ? //輸出121
? ? ? ? //現在可以通過一個數組統(tǒng)一維護
? ? ? ? let scores = new Array(5);????//創(chuàng)建一個長度為5的數組空間(在內存中連續(xù)開辟了一個長度為5的存儲空間)
2.通過數組的下標送浊,往數組中存儲數據
? ? ? ? scores[0] = 55;
? ? ? ? scores[3] = 66;
? ? ? ? 通過數組的下標梦谜,從數組的指定空間里面獲取數據
? ? ? ? let sum2 = scores[0] + scores[3]
? ? ? ? console.log(sum2);? ? //輸出121
? ? ? ? console.log(scores);? ? //[55, empty × 2, 66, empty]
3.注意:在其他的編程語言中,定義數組時袭景,必須要明確數組的長度唁桩,但是,js中不需要耸棒。
????????//在js中荒澡,數組的長度是彈性的
? ? ? ? let scores2 = new Array()
? ? ? ? scores2[0] = 55
? ? ? ? scores2[8] = 66
? ? ? ? console.log(scores2);? ? //[55, empty × 7, 66]
4.在js中,定義數組有兩種方式:1.采用數組的構造函數new与殃,2.使用字面量直接賦值
? ? ? ? let scores3 = new Array('蘋果','香蕉')
? ? ? ? console.log(scores3);? ? //['蘋果', '香蕉']
? ? ? ? let scores4 = ['葡萄','榴蓮']
? ? ? ? console.log(scores4);? ? //['葡萄', '榴蓮']
5.length屬性单山,返回數組的長度
? ? ? ? console.log(scores4.length);? ? //輸出2
數組練習
1.定義數組保存5名學生的成績,并算出5名學生的平均分
????????let scores = new Array(5);????//創(chuàng)建一個長度為5的數組
? ? ? ? let sum = 0;????//定義總分
? ? ? ? //循環(huán)出數組的所有下標
? ? ? ? for(let i=0;i<scores.length;i++){
? ? ? ? ? ? // 通過數組的下標幅疼,給數組的指定空間賦值
? ? ? ? ? ? scores[i] = parseInt(prompt(`請輸入第${i+1}位學員成績:`))
? ? ? ? ? ? //累加總分
? ? ? ? ? ? sum += scores[i];
? ? ? ? }
? ? ? ? console.log('所有學生的成績:'+scores);
? ? ? ? console.log('學生的平均分:'+(sum/5));
數組的常用方法
1.concat()方法米奸,用于合并兩個或多個數組,返回一個全新的數組
? ? ? ? let arr1 = [11,22,33]
? ? ? ? let arr2 = [44,55,66]
? ? ? ? let arr3 = arr1.concat(arr2)
? ? ? ? console.log(arr3);? ? //輸出[11, 22, 33, 44, 55, 66]
2.copyWithin()方法爽篷,從數組的指定位置拷貝元素到數組的另一個指定位置中
注意:第一個參數是目標位置悴晰,第二個參是拷貝元素的起始位,第三個參數是拷貝元素的結束位置(取不到結束位置)逐工。如果不設置第三個參數铡溪,表示從拷貝元素的起始位到最后全部返回。
注意:拷貝元素是覆蓋原元素泪喊,最終的數組的長度是不變的佃却。
????????let arr4 = [11,22,33,44,55,66,77,88]
? ? ? ? let arr = [11,22,33,44,55,66,77,88]
? ? ? ? arr4.copyWithin(2,4,6);
? ? ? ? arr.copyWithin(2,4);
? ? ? ? console.log(arr4);? ? //輸出[11, 22, 55, 66, 55, 66, 77, 88]
? ? ? ? console.log(arr);? ? //輸出[11, 22, 55, 66, 77, 88, 77, 88]
3. fill()方法,使用一個固定值來填充數組
? ? ? ? let arr5 = new Array(5)
? ? ? ? arr5.fill(50)
? ? ? ? console.log(arr5);? ? //輸出[50, 50, 50, 50, 50]
4.includes()方法窘俺,從數組中檢查指定的數據是否存在,存在返回true复凳,不存在返回false
indexOf()方法瘤泪,從數組中檢查指定的數據的位置(從前往后找第一個),不存在返回-1
lastIndexOf()方法育八,從數組中檢查指定的數據的位置(從后往前找第一個)对途,不存在返回-1
? ? ? ? let arr6 = [11,22,33,44,55,44,77,88]
? ? ? ? console.log(arr6.includes(44));? ???????//輸出true
? ? ? ? console.log(arr6.includes(38));? ???//輸出false
? ? ? ? console.log(arr6.indexOf(44));? ???//輸出3
? ? ? ? console.log(arr6.indexOf(38));? ???//輸出-1
? ? ? ? console.log(arr6.lastIndexOf(44));? ???//輸出5
? ? ? ? console.log(arr6.lastIndexOf(38));? ???//輸出-1
5.isArray()方法,用于檢查指定的對象是否是數組髓棋,注意:該方法屬于Array類型实檀,不屬于Arrary的對象
? ? ? ? let str1 = 'hello'
? ? ? ? console.log(Array.isArray(str1));? ??//輸出false
? ? ? ? console.log(Array.isArray(arr6));? ??//輸出true
6.join()方法惶洲,用于將一個數組根據某個字符串拼接成字符串,該方法不傳參數膳犹,默認是根據逗號拼接
? ? ? ? console.log(arr6.join('你好呀'));? ? //輸出11你好呀22你好呀33你好呀44你好呀55
????????????????????????????????????????????????????????????????????????你好呀44你好呀77你好呀88
? ? ? ? console.log(arr6.join(''));? ? //輸出1122334455447788
? ? ? ? console.log(arr6.join());? ? //輸出11,22,33,44,55,44,77,88
7.push()方法恬吕,向數組的末尾添加一個或更多元素,并返回新的長度
? ? ? ? let arr7 = [11,22,33]
? ? ? ? arr7.push(44)
? ? ? ? console.log(arr7);? ? //輸出[11, 22, 33, 44]
8.pop()方法须床,刪除數組的最后一個元素并返回刪除的元素
? ? ? ? arr7.pop()
? ? ? ? console.log(arr7);? ??//輸出[11, 22, 33]
9.unshift()方法铐料,向數組的開頭添加一個或更多元素,并返回新的長度
? ? ? ? arr7.unshift(55)
? ? ? ? console.log(arr7);? ? //輸出[55, 11, 22, 33]
10.shift()方法豺旬,刪除并返回數組的第一個元素
? ? ? ? arr7.shift()
? ? ? ? console.log(arr7);? ??//輸出[11, 22, 33]
11.reverse()方法钠惩,反轉數組的元素順序
? ? ? ? arr7.reverse()
? ? ? ? console.log(arr7);? ??//輸出[33, 22, 11]
12.slice()方法,選取數組的一部分族阅,并返回一個新數組
注意:該方法的第一個參數是起始位置篓跛,第二個參數是結束位置(取不到結束位置)
第二個參數可以省略,表示從起始位置到最后全部返回
? ? ? ? let arr8 = [11,22,33,44,55,66,77,88,99]
? ? ? ? console.log(arr8.slice(3,6));? ???//輸出[44, 55, 66]
? ? ? ? console.log(arr8.slice(3));? ???//輸出[44, 55, 66, 77, 88, 99]
13.repeat()是字符串的方法坦刀,用于重復指定的字符串多少次
? ? ? ? console.log('!'.repeat(30));? ? //輸出!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
14.splice()方法愧沟,從數組中添加或刪除元素
如何刪除,該方法需要傳兩個參數:第一個是起始位置求泰,第二個是刪除長度
如果第二個參數不傳央渣,就表示從起始位置往后全部刪除
刪除方法,刪除的是原始數組里面的數據渴频,返回的是刪除的數據
該方法也可以傳三個參數芽丹,第三個參數就是刪除部分插入的新內容
? ? ? ? // arr8.splice(4,3)????//刪除指定區(qū)間的數據
? ? ? ? // arr8.splice(4)????//從起始位置往后全部刪除
? ? ? ? // arr8.splice(4,3,'哈哈')????//刪除部分的內容替換成新的內容(修改數組的內容)
? ? ? ? arr8.splice(4,0,'哈哈')????//在數組的指定位置插入內容
? ? ? ? console.log(arr8);? ? //輸出[11, 22, 33, 44, '哈哈', 55, 66, 77, 88, 99]
15.toString()方法,把數組轉換為字符串卜朗,并返回結果拔第。效果跟join方法不傳參數一樣。
? ? ? ? console.log(arr8.toString());? ? //輸出11,22,33,44,哈哈,55,66,77,88,99
反轉字符串
split()方法场钉,用于將字符串根據某個字符串打散成數組
? ? ? ? let s1 = "我喜歡吃蘋果蚊俺,喜歡吃桃子,喜歡吃香蕉"
? ? ? ? // 將字符串根據“喜歡”打散成數組
? ? ? ? console.log(s1.split('喜歡'));? ? //輸出['我', '吃蘋果逛万,', '吃桃子泳猬,', '吃香蕉']
? ? ? ? // 將字符串中的所有字符打散成數組
? ? ? ? console.log(s1.split(''));? ? //輸出['我', '喜', '歡', '吃', '蘋', '果', ',', '喜', '歡', '吃', '桃', '子', '宇植,', ????????????????????????????????????????????????????????????'喜', '歡', '吃', '香', '蕉']
? ? ? ? let str = '好好學習得封,天天向上'
? ? ? ? // 01.將字符串打散成數組
? ? ? ? let arr = str.split('')
? ? ? ? // 02.數組反轉一下
? ? ? ? arr.reverse()
? ? ? ? // 03.將數組拼接陳字符串
? ? ? ? let str2 = arr.join('')
? ? ? ? console.log(str2);? ? //輸出上向天天,習學好好
? ? ? ? //字符串和數組的所有方法指郁,可以鏈式調用
? ? ? ? console.log(str.split('').reverse().join(''));? ???//輸出上向天天忙上,習學好好