2018-05-17

JavaScript 六、數(shù)組API

不與眾生

已關(guān)注

2018-05-16 19:57 · 字?jǐn)?shù) 1140 · 閱讀 2 ·? 日記本

數(shù)組:內(nèi)存中連續(xù)存儲(chǔ)多個(gè)變量的存儲(chǔ)空間

一匆骗、聲明數(shù)組:

1.聲明一個(gè)空數(shù)組

? ? ? ? ? ? ? var arr=[];

? ? ? ? ? ? ? var arr=new Array()

2.聲明數(shù)組的同時(shí)初始化數(shù)據(jù)

var arr=['值1','值2','值3']麻敌;

var arr=new Array('值1','值2','值3');

3.創(chuàng)建n個(gè)空元素的數(shù)組

? ? ? ? ? ? ? var arr=new Array(n);

二赤拒、訪問數(shù)組中的元素

下標(biāo):數(shù)組中唯一標(biāo)識(shí)一個(gè)元素存儲(chǔ)位置的序號

下標(biāo)默認(rèn)從0開始跟继,逐漸遞增裙顽,不重復(fù)

arr[i]訪問下標(biāo)為i位置的元素

三亭珍、數(shù)組的length屬性

標(biāo)識(shí)了數(shù)組中理論上的元素個(gè)數(shù)

任何情況下敷钾,數(shù)組的長度永遠(yuǎn)等于最大下標(biāo)+1

固定套路:

訪問數(shù)組中的最后一個(gè)元素arr[arr.length-1]

訪問數(shù)組中倒數(shù)第n個(gè)元素 arr[arr.length-n]

末尾追加新元素:arr[arr.length]=新值

js中的數(shù)組有三個(gè)不限制:

1.不限制數(shù)據(jù)類型

2.不限制下標(biāo)越界

獲取元素時(shí),下標(biāo)越界肄梨,不報(bào)錯(cuò)阻荒,返回undefined

3.不限制元素的個(gè)數(shù)?

設(shè)置元素時(shí)下標(biāo)越界會(huì)自動(dòng)添加新元素

四、數(shù)組的遍歷

遍歷:訪問數(shù)組中的每個(gè)元素

? ? ? ? ? ? ? ? ? ? for(var i=0;i

console.log(arr[i])众羡;//輸出數(shù)組中的當(dāng)前元素

? ? ? ? ? ? ? ? ? ? }?

關(guān)聯(lián)數(shù)組/hash數(shù)組

索引數(shù)組:下標(biāo)為數(shù)字的數(shù)組

關(guān)聯(lián)數(shù)組:下標(biāo)不位數(shù)字的數(shù)組

? ? ? ? ? ? ? var zse=[];

zse['name']='張三';

? ? ? ? ? ? ? zse['age']='18';

? ? ? ? ? ? ? zse['sex']='boy';

? ? ? ? ? ? ? console.log(zse);

注:關(guān)聯(lián)數(shù)組沒有l(wèi)ength屬性

關(guān)聯(lián)數(shù)組不能用for遍歷侨赡,要用for....in遍歷

? ? ? ? ? ? ? ? for(var key in hash){

//key代表關(guān)鍵字,即下標(biāo)

//hash代表數(shù)組名

? ? ? ? ? ? ? ? }

var zse=[];

? ? ? ? ? ? ? zse['name']='張三';

? ? ? ? ? ? ? zse['age']='18';

? ? ? ? ? ? ? zse['sex']='boy';

? ? ? ? ? ? ? console.log(zse);

? ? ? ? ? ? ? for(var key in zse){

? ? ? ? ? ? ? console.log(zse[key]);

? ? ? ? ? ? ? }

五、數(shù)組API

1.String()把數(shù)組轉(zhuǎn)為字符串

練習(xí):

? ? ? ? ? ? ? ? var arr=[1,2,3,4,5];

? ? ? ? ? ? ? ? var str=String(arr);

? ? ? ? ? ? ? ? console.log(str);

不修改原數(shù)組

2.join('')拼接羊壹,把數(shù)組中的元素拼接為字符串?

練習(xí):

? var arr=['a','b','c','d','e'];

? var str=arr.join('-');

var str=arr.join();//join中不添加任何拼接符的時(shí)候默認(rèn)和String一樣

? console.log(str); */

3.concat()拼接

練習(xí):

? var arr=[1,2,3,4,5];

? var str=arr.concat('a','b');

? console.log(str);

2個(gè)數(shù)組拼接

? ? ? ? ? ? ? ? ? var arr2=['true','false'];

? ? ? ? ? ? ? ? ? var str1=arr.concat(arr2);

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

注:join和concat的區(qū)別

join適用于把字母拼接為單詞蓖宦,把單詞拼接為句子,拼出來的是字符串

concat是給數(shù)組后面拼接新元素舶掖,或把兩個(gè)數(shù)組拼接球昨,拼出的還是數(shù)組

4.slice(strati,endi+1)截取

特點(diǎn)1.含頭不含尾

特點(diǎn)2.如果省略第二個(gè)參數(shù)默認(rèn)從第一個(gè)參數(shù)開始截取到末尾

特點(diǎn)3.如果兩個(gè)參數(shù)都省略相當(dāng)于復(fù)制原字符串

支持負(fù)數(shù)參數(shù)

練習(xí):

? ? ? ? ? ? ? ? ? ? var arr=[1,2,3,4,5];

var str1=arr.slice(1,3);//從下標(biāo)為1的位置截取到下標(biāo)為3的位置

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

var str2=arr.slice(1);//如果省略第二個(gè)參數(shù)默認(rèn)從第一個(gè)參數(shù)開始截取到末尾

var str3=arr.slice();//如果兩個(gè)參數(shù)都省略相當(dāng)于復(fù)制原字符串

var str4=arr.slice(-4,-2);//支持負(fù)數(shù)參數(shù),小數(shù)在前,大數(shù)在后

? ? ? ? ? ? ? ? ? ? console.log(str4);

5.splice(strati,n)刪除 插入 替換

練習(xí):

//刪除

? ? ? ? ? ? ? ? ? ? ? var arr=[1,2,3,4,5];

var str=arr.splice(1,2);//表示從下標(biāo)為1的位置處開始刪除2個(gè)

? ? ? ? ? ? ? ? ? ? ? console.log(str);

? ? ? ? ? ? ? ? ? ? ? console.log(arr);

//插入

? ? ? ? ? ? ? ? ? ? ? ? var arr=[1,2,3,4,5];

var str=arr.splice(1,0,'a','b','c');//從下標(biāo)為1的位置處開始刪除0個(gè)并插入新元素

? ? ? ? ? ? ? ? ? ? ? ? console.log(arr);

//替換

? ? ? ? ? ? ? ? ? ? ? ? var arr=[1,2,3,4,5];

var str=arr.splice(1,2,'a','b');//從下標(biāo)為1的位置處開始刪除2個(gè)并替換新元素

? ? ? ? ? ? ? ? ? ? ? ? console.log(arr);

6.reverse()翻轉(zhuǎn)

練習(xí):

? ? ? ? ? ? ? ? ? ? var arr=[1,2,3,4,5];

? ? ? ? ? ? ? ? ? ? var str=arr.reverse();

? ? ? ? ? ? ? ? ? ? console.log(str);

六眨攘、數(shù)組排序

? ? ? ? ? arr.sort();

? ? ? ? ? ? ? var arr=[2,4,3,5,1];

? ? ? ? ? var str=arr.sort();

? ? ? ? ? console.log(str);

像以下這種函數(shù)用arr.sort無法實(shí)現(xiàn)排序主慰,這時(shí)候就需要用到比較器函數(shù)

? var arr=[1,12,22,13,23,33,3,2];

? function cmp(a,b){

return a-b;//升序排列

return b-a;//降序排列

? }

? ? ? console.log(arr.sort(cmp));

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市鲫售,隨后出現(xiàn)的幾起案子共螺,更是在濱河造成了極大的恐慌,老刑警劉巖情竹,帶你破解...
    沈念sama閱讀 222,104評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件藐不,死亡現(xiàn)場離奇詭異,居然都是意外死亡秦效,警方通過查閱死者的電腦和手機(jī)雏蛮,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來阱州,“玉大人挑秉,你說我怎么就攤上這事√酰” “怎么了犀概?”我有些...
    開封第一講書人閱讀 168,697評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長夜惭。 經(jīng)常有香客問我姻灶,道長,這世上最難降的妖魔是什么诈茧? 我笑而不...
    開封第一講書人閱讀 59,836評論 1 298
  • 正文 為了忘掉前任产喉,我火速辦了婚禮,結(jié)果婚禮上敢会,老公的妹妹穿的比我還像新娘镊叁。我一直安慰自己,他們只是感情好走触,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,851評論 6 397
  • 文/花漫 我一把揭開白布晦譬。 她就那樣靜靜地躺著,像睡著了一般互广。 火紅的嫁衣襯著肌膚如雪敛腌。 梳的紋絲不亂的頭發(fā)上卧土,一...
    開封第一講書人閱讀 52,441評論 1 310
  • 那天,我揣著相機(jī)與錄音像樊,去河邊找鬼。 笑死生棍,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的涂滴。 我是一名探鬼主播,決...
    沈念sama閱讀 40,992評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼柔纵,長吁一口氣:“原來是場噩夢啊……” “哼缔杉!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起搁料,我...
    開封第一講書人閱讀 39,899評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎霸琴,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體昭伸,經(jīng)...
    沈念sama閱讀 46,457評論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡梧乘,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,529評論 3 341
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了勋乾。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片嗡善。...
    茶點(diǎn)故事閱讀 40,664評論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖各吨,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情揭蜒,我是刑警寧澤剔桨,帶...
    沈念sama閱讀 36,346評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站洒缀,受9級特大地震影響欺冀,放射性物質(zhì)發(fā)生泄漏萨脑。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,025評論 3 334
  • 文/蒙蒙 一渤早、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧悴灵,春花似錦、人聲如沸称勋。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽庐船。三九已至,卻和暖如春筐钟,著一層夾襖步出監(jiān)牢的瞬間揩瞪,已是汗流浹背篓冲。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留嗤攻,地道東北人诽俯。 一個(gè)月前我還...
    沈念sama閱讀 49,081評論 3 377
  • 正文 我出身青樓,卻偏偏與公主長得像暴区,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子仙粱,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,675評論 2 359

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

  • 數(shù)組:內(nèi)存中連續(xù)存儲(chǔ)多個(gè)變量的存儲(chǔ)空間伐割, 一淹遵、聲明數(shù)組: 1.聲明一個(gè)空數(shù)組 var arr=[]; var ar...
    王哲勝閱讀 1,640評論 0 0
  • 前言 最先接觸編程的知識(shí)是在大學(xué)里面川抡,大學(xué)里面學(xué)了一些基礎(chǔ)的知識(shí),c語言侍咱,java語言,單片機(jī)的匯編語言等楔脯;大學(xué)畢...
    oceanfive閱讀 3,095評論 0 7
  • 第一章1,什么叫程序:程序就是計(jì)算機(jī)按照人類完成事物的步驟和邏輯胯甩,通過計(jì)算機(jī)命令來逐步執(zhí)行最終實(shí)現(xiàn)目標(biāo)的一種機(jī)器語...
    悟名先生閱讀 955評論 0 4
  • 一、數(shù)組 數(shù)組是一個(gè)有序列表,所以有下標(biāo). 并且數(shù)組在js中可以存在任意類型的數(shù)據(jù).并且同一個(gè)數(shù)組中可以存放不同的...
    空谷悠閱讀 514評論 0 1
  • 3月木柬,正是櫻花盛開的季節(jié)淹办,蘭和柯南正走在回家的路上,看到這街道兩旁的櫻花怜森,兩人都不禁想起了櫻花班時(shí)的回憶。 “好開...
    紫月瞳閱讀 1,683評論 2 2