Js筆記(數(shù)組的遍歷含思、數(shù)組API崎弃、數(shù)組排序)

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


一含潘、聲明數(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ù)組的長度永遠等于最大下標(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ù)組名

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



五、數(shù)組API:

1.轉(zhuǎn)字符串: 2種

1.將數(shù)組中每個元素都轉(zhuǎn)為字符串咒彤,再用逗號分隔: var str=String(arr);

2.將數(shù)組中每個元素都轉(zhuǎn)為字符串疆柔,再用自定義下標(biāo)連接每個元素:

var str=arr.join("自定義連接符")

強調(diào):如果省略參數(shù),默認(rèn)等效于String

固定套路:

1.無縫拼接: arr.join("")

2.將單詞拼接為句子: arr.join(" ")

3.判斷空數(shù)組: arr.join("")==""

4.根據(jù)數(shù)組中的元素镶柱,動態(tài)生成頁面元素的內(nèi)容


2.拼接和截取:

拼接:

??var newArr=arr1.concat(值1,值2,arr2,....)

將值1,值2,以及arr2中每個元素依次拼接到arr1結(jié)尾旷档,返回新數(shù)組。

何時使用:將多個元素或其他數(shù)組歇拆,拼接到當(dāng)前數(shù)組上時

強調(diào):

1.concat無權(quán)修改原數(shù)組鞋屈,只能返回新數(shù)組

所以,必須用變量接住拼接后的返回值

2.concat可打散數(shù)組類型的參數(shù)為單個元素


截取:(復(fù)制)

??var subArr=arr.slice(starti,endi+1);

復(fù)制arr中starti位置開始到endi結(jié)束的元素組成子數(shù)組返回故觅。

何時:選取數(shù)組中指定位置的子數(shù)組時

強調(diào): 1.無權(quán)修改原數(shù)組厂庇,只返回新子數(shù)組

2.含頭不含尾

3.其實可使用負(fù)數(shù)參數(shù),表示倒數(shù)第n個

簡寫:

1.省略第二個參數(shù),表示一直截取到結(jié)尾

2.兩個都省略输吏,表示完整復(fù)制原數(shù)組中的元素到新數(shù)組权旷。

不能只省略第一個參數(shù)——報錯

3.splice:刪除,插入贯溅,替換

刪除數(shù)組中指定位置的元素:

??arr.splice(starti,n):

刪除arr中starti位置開始的n個元素

其實: var deletes=arr.splice(starti,n)

deletes:返回的被刪除的元素組成的臨時子數(shù)組拄氯。


在數(shù)組指定位置插入新元素:

arr.splice(starti,0,值1,值2,...)

在starti位置插入新值

原starti位置的值被向后順移

強調(diào): splice躲查,不支持打散數(shù)組參數(shù)

插入: splice vs concat

concat只能在開頭或結(jié)尾拼接,不能中間插入坤邪。但可打散數(shù)組類型參數(shù)

splice可在任意位置插入熙含,但不可打散數(shù)組類型參數(shù)。


替換數(shù)組中指定位置的元素

arr.splice(starti,n,值1,值2,...)

先刪除starti位置的n個舊元素

再在starti位置插入新值

強調(diào):刪除的個數(shù)和插入的個數(shù)不必一致

splice可自動調(diào)節(jié)數(shù)組的長度和位置


翻轉(zhuǎn): arr.reverse();

例: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.sort(cmp));

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市黔衡,隨后出現(xiàn)的幾起案子蚓聘,更是在濱河造成了極大的恐慌,老刑警劉巖盟劫,帶你破解...
    沈念sama閱讀 210,978評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件夜牡,死亡現(xiàn)場離奇詭異,居然都是意外死亡侣签,警方通過查閱死者的電腦和手機塘装,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評論 2 384
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來影所,“玉大人蹦肴,你說我怎么就攤上這事『锩洌” “怎么了阴幌?”我有些...
    開封第一講書人閱讀 156,623評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長卷中。 經(jīng)常有香客問我矛双,道長,這世上最難降的妖魔是什么蟆豫? 我笑而不...
    開封第一講書人閱讀 56,324評論 1 282
  • 正文 為了忘掉前任议忽,我火速辦了婚禮,結(jié)果婚禮上十减,老公的妹妹穿的比我還像新娘徙瓶。我一直安慰自己,他們只是感情好嫉称,可當(dāng)我...
    茶點故事閱讀 65,390評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著灵疮,像睡著了一般织阅。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上震捣,一...
    開封第一講書人閱讀 49,741評論 1 289
  • 那天荔棉,我揣著相機與錄音闹炉,去河邊找鬼。 笑死润樱,一個胖子當(dāng)著我的面吹牛渣触,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播壹若,決...
    沈念sama閱讀 38,892評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼嗅钻,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了店展?” 一聲冷哼從身側(cè)響起养篓,我...
    開封第一講書人閱讀 37,655評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎赂蕴,沒想到半個月后柳弄,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,104評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡概说,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年碧注,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片糖赔。...
    茶點故事閱讀 38,569評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡萍丐,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出挂捻,到底是詐尸還是另有隱情碉纺,我是刑警寧澤,帶...
    沈念sama閱讀 34,254評論 4 328
  • 正文 年R本政府宣布刻撒,位于F島的核電站骨田,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏声怔。R本人自食惡果不足惜态贤,卻給世界環(huán)境...
    茶點故事閱讀 39,834評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望醋火。 院中可真熱鬧悠汽,春花似錦、人聲如沸芥驳。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽兆旬。三九已至假抄,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背宿饱。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評論 1 264
  • 我被黑心中介騙來泰國打工熏瞄, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人谬以。 一個月前我還...
    沈念sama閱讀 46,260評論 2 360
  • 正文 我出身青樓强饮,卻偏偏與公主長得像,于是被迫代替她去往敵國和親为黎。 傳聞我的和親對象是個殘疾皇子邮丰,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,446評論 2 348

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