5月16日數(shù)組API 遍歷 排序

一嫁艇、聲明數(shù)組:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

固定套路:

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

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

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

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

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

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

獲取元素時蛔趴,下標(biāo)越界,不報錯例朱,返回undefined

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

設(shè)置元素時下標(biāo)越界會自動添加新元素

四孝情、數(shù)組的遍歷

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

? ? ? ? ? ? ? ? ? ? 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中不添加任何拼接符的時候默認(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個數(shù)組拼接

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

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

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

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

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

concat是給數(shù)組后面拼接新元素间唉,或把兩個數(shù)組拼接绞灼,拼出的還是數(shù)組

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

特點1.含頭不含尾

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

特點3.如果兩個參數(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);//如果省略第二個參數(shù)默認(rèn)從第一個參數(shù)開始截取到末尾

var str3=arr.slice();//如果兩個參數(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個

? ? ? ? ? ? ? ? ? ? ? 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個并插入新元素

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

//替換

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

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

? ? ? ? ? ? ? ? ? ? ? ? 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無法實現(xiàn)排序低矮,這時候就需要用到比較器函數(shù)

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

? function cmp(a,b){

return a-b;//升序排列

return b-a;//降序排列

? }

? ? ? console.log(arr.s

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市被冒,隨后出現(xiàn)的幾起案子商佛,更是在濱河造成了極大的恐慌,老刑警劉巖姆打,帶你破解...
    沈念sama閱讀 218,122評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件良姆,死亡現(xiàn)場離奇詭異,居然都是意外死亡幔戏,警方通過查閱死者的電腦和手機玛追,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來闲延,“玉大人痊剖,你說我怎么就攤上這事±萘幔” “怎么了陆馁?”我有些...
    開封第一講書人閱讀 164,491評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長合愈。 經(jīng)常有香客問我叮贩,道長击狮,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,636評論 1 293
  • 正文 為了忘掉前任益老,我火速辦了婚禮彪蓬,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘捺萌。我一直安慰自己档冬,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,676評論 6 392
  • 文/花漫 我一把揭開白布桃纯。 她就那樣靜靜地躺著酷誓,像睡著了一般。 火紅的嫁衣襯著肌膚如雪态坦。 梳的紋絲不亂的頭發(fā)上呛牲,一...
    開封第一講書人閱讀 51,541評論 1 305
  • 那天,我揣著相機與錄音驮配,去河邊找鬼。 笑死着茸,一個胖子當(dāng)著我的面吹牛壮锻,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播涮阔,決...
    沈念sama閱讀 40,292評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼猜绣,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了敬特?” 一聲冷哼從身側(cè)響起掰邢,我...
    開封第一講書人閱讀 39,211評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎伟阔,沒想到半個月后辣之,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,655評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡皱炉,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,846評論 3 336
  • 正文 我和宋清朗相戀三年怀估,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片合搅。...
    茶點故事閱讀 39,965評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡多搀,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出灾部,到底是詐尸還是另有隱情康铭,我是刑警寧澤,帶...
    沈念sama閱讀 35,684評論 5 347
  • 正文 年R本政府宣布赌髓,位于F島的核電站从藤,受9級特大地震影響催跪,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜呛哟,卻給世界環(huán)境...
    茶點故事閱讀 41,295評論 3 329
  • 文/蒙蒙 一叠荠、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧扫责,春花似錦榛鼎、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至苏揣,卻和暖如春黄鳍,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背平匈。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評論 1 269
  • 我被黑心中介騙來泰國打工框沟, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人增炭。 一個月前我還...
    沈念sama閱讀 48,126評論 3 370
  • 正文 我出身青樓忍燥,卻偏偏與公主長得像,于是被迫代替她去往敵國和親隙姿。 傳聞我的和親對象是個殘疾皇子梅垄,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,914評論 2 355

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