JS數組

數組

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(''));? ???//輸出上向天天忙上,習學好好

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市闲坎,隨后出現的幾起案子疫粥,更是在濱河造成了極大的恐慌茬斧,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,183評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件梗逮,死亡現場離奇詭異项秉,居然都是意外死亡,警方通過查閱死者的電腦和手機库糠,發(fā)現死者居然都...
    沈念sama閱讀 94,850評論 3 399
  • 文/潘曉璐 我一進店門伙狐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人瞬欧,你說我怎么就攤上這事贷屎。” “怎么了艘虎?”我有些...
    開封第一講書人閱讀 168,766評論 0 361
  • 文/不壞的土叔 我叫張陵唉侄,是天一觀的道長。 經常有香客問我野建,道長属划,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,854評論 1 299
  • 正文 為了忘掉前任候生,我火速辦了婚禮同眯,結果婚禮上,老公的妹妹穿的比我還像新娘唯鸭。我一直安慰自己须蜗,他們只是感情好,可當我...
    茶點故事閱讀 68,871評論 6 398
  • 文/花漫 我一把揭開白布目溉。 她就那樣靜靜地躺著明肮,像睡著了一般。 火紅的嫁衣襯著肌膚如雪缭付。 梳的紋絲不亂的頭發(fā)上柿估,一...
    開封第一講書人閱讀 52,457評論 1 311
  • 那天,我揣著相機與錄音陷猫,去河邊找鬼秫舌。 笑死,一個胖子當著我的面吹牛绣檬,可吹牛的內容都是我干的舅巷。 我是一名探鬼主播,決...
    沈念sama閱讀 40,999評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼河咽,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了赋元?” 一聲冷哼從身側響起忘蟹,我...
    開封第一講書人閱讀 39,914評論 0 277
  • 序言:老撾萬榮一對情侶失蹤飒房,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后媚值,有當地人在樹林里發(fā)現了一具尸體狠毯,經...
    沈念sama閱讀 46,465評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,543評論 3 342
  • 正文 我和宋清朗相戀三年褥芒,在試婚紗的時候發(fā)現自己被綠了嚼松。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,675評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡锰扶,死狀恐怖献酗,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情坷牛,我是刑警寧澤罕偎,帶...
    沈念sama閱讀 36,354評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站京闰,受9級特大地震影響颜及,放射性物質發(fā)生泄漏。R本人自食惡果不足惜蹂楣,卻給世界環(huán)境...
    茶點故事閱讀 42,029評論 3 335
  • 文/蒙蒙 一亲桥、第九天 我趴在偏房一處隱蔽的房頂上張望额湘。 院中可真熱鬧,春花似錦、人聲如沸深啤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽皇耗。三九已至,卻和暖如春赞哗,著一層夾襖步出監(jiān)牢的瞬間雷则,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評論 1 274
  • 我被黑心中介騙來泰國打工肪笋, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留月劈,地道東北人。 一個月前我還...
    沈念sama閱讀 49,091評論 3 378
  • 正文 我出身青樓藤乙,卻偏偏與公主長得像猜揪,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子坛梁,可洞房花燭夜當晚...
    茶點故事閱讀 45,685評論 2 360

推薦閱讀更多精彩內容