Javascript Array數(shù)組初探

1.創(chuàng)建方法

1.直接創(chuàng)建
var arr=new Array(); //()可以傳遞參數(shù)搀突,表示數(shù)組長度续室,也可以不傳
2.數(shù)組字面量
var arr=[2,4,,5,6] ;

2.檢測方法

  1. instanceof
    eg:
arr=[1,3,4];
arr instanceof Array叽粹;//true
 >2. isArray()
 eg:
Array.isArray(arr);//true;

3.頭尾刪除添加方法

因?yàn)閖s中數(shù)組長度是可變的冀值,所以不用預(yù)先設(shè)置其長度或申請(qǐng)空間溯乒;

  1. 頭部增加元素:arr.unshift(value1,value2,value3,...);
    //數(shù)組前端添加任意個(gè)項(xiàng)并返回修改后數(shù)組長度;
  2. 尾部添加元素:arr.push(value1,value2,value3,...);
    //數(shù)組尾端添加任意個(gè)項(xiàng)并返回修改后數(shù)組長度匪煌;
    3.頭部刪除元素:
    arr.shift();//移除數(shù)組的第一項(xiàng)并返回該項(xiàng);
  3. 尾部添加元素:
    arr.pop();/移除數(shù)組的最后一項(xiàng)并返回該項(xiàng);

4.排序方法

因?yàn)閿?shù)組自身提供的arr.sort()函數(shù)字符順序進(jìn)行排序的责蝠,所以當(dāng)數(shù)字大于10的情況下,就很可能發(fā)生錯(cuò)誤萎庭,所以我們需要自定義排序方法霜医;
error example:

  var values=[10,1,5,10,15];
  values.sort();
  console.log(values);//0,1,10,15,5

重寫方法:

  function compare(a,b){
        if(a>b){
            return 1;
        }
      else if(a<b){
          return -1;      
      }
     else{
          return 0;
      }
}

5.數(shù)組操作方法

1.splice()方法刪除:

arr.splice(起始位置,分割長度),下標(biāo)從0開始驳规;
eg:
arr=[2,5,1,89,23,14,67]
arr.splice(2,2)肴敛;
arr為[2, 5, 23, 14, 67]

2..splice()方法插入:
1.只插入不刪除(第一個(gè)參數(shù)表示開始的下標(biāo)位置,第二個(gè)參數(shù)為0即可表示不刪除吗购,后面元素個(gè)數(shù)可選医男,表示要插入的元素)

arr=[2, 5, 1, 89, 23, 14, 67]
arr.splice(3,0,100);
arr為[2, 5, 1, 100, 89, 23, 14, 67]
arr.splice(3,0,0,0)
arr為[2, 5, 1, 0, 0, 100, 89, 23, 14, 67]

2.刪除又插入(即替換)(第一個(gè)參數(shù)表示開始的下標(biāo)位置,第二個(gè)參數(shù)表示刪除的元素個(gè)數(shù)捻勉,后面元素個(gè)數(shù)可選镀梭,表示要插入的元素)

arr=[2, 5, 1, 89, 23, 14, 67]
a.splice(2,2,6)
arr為[2, 5, 6, 23, 14, 67]


3.slice()方法截取:(返回一個(gè)新數(shù)組踱启,不影響當(dāng)前數(shù)組)
1.一個(gè)參數(shù):表示當(dāng)前位置到數(shù)組末尾的所有項(xiàng)

arr=[2,4,6,7,8,1,4];
var result=arr.slice(3);
result為:[7, 8, 1, 4];

2.兩個(gè)參數(shù):起始位置和結(jié)束位置报账,不包括結(jié)束位置的項(xiàng)

arr=[2,4,6,7,8,1,4];
var result=arr.slice(3,6);
result為:[7, 8, 1];

PS:數(shù)組長度為負(fù)數(shù)時(shí)埠偿,表示數(shù)組長度+該數(shù)透罢;
結(jié)束位置小于開始位置時(shí),返回空數(shù)理胚想;

4.indexOf()和lastIndexOf()方法:

參數(shù):第一個(gè)參數(shù)表示要查找的項(xiàng)琐凭,第二個(gè)參數(shù)表示開始查找位置(可選);
indexOf():從頭開始向后查找浊服;
lastIndexOf():從數(shù)組的末尾往前查找统屈;

arr=[2,4,6,7,8,1,4];
arr.indexOf(4); result:1
arr.lastIndexOf(4); result:6
arr.indexOf(4,3); result:6
arr.lastIndexOf(4,3) result:1

5.迭代方法
1.every():對(duì)數(shù)組的每一項(xiàng)運(yùn)行給定函數(shù)胚吁,函數(shù)每一項(xiàng)都返回true,則返回true愁憔;
    arr=[3,5,7,1,9,5,3];
    let flag=arr.every(function(item){
          return item>0;
    });
    alert(flag);//true;
 arr=[3,5,7,1,9,5,3];
    let flag=arr.every(function(item){
          return item>5;
    });
    alert(flag);//false;
2.some():對(duì)數(shù)組的每一項(xiàng)執(zhí)行給定函數(shù)腕扶,如果數(shù)組的某一項(xiàng)返回true,則返回true吨掌;
    arr=[3,5,7,1,9,5,3];
    let flag=arr.some(function(item){
          return item===9;
    });
    alert(flag);//true;
    arr=[3,5,7,1,9,5,3];
    let flag=arr.some(function(item){
          return item>10;
    });
    alert(flag);//false;
3.map():對(duì)數(shù)組的每一項(xiàng)執(zhí)行給定函數(shù)半抱,返回每次調(diào)用函數(shù)的結(jié)果組成的數(shù)組;
    arr=[3,5,7,1,9,5,3];
    let result=arr.map(function(item){
          return item*5;
    });
    alert(result);//[15, 25, 35, 5, 45, 25, 15];
4.filter():對(duì)數(shù)組的每一項(xiàng)執(zhí)行給定函數(shù)膜宋,返回每次調(diào)用函數(shù)結(jié)果為true的項(xiàng)組成的數(shù)組窿侈;
    arr=[3,5,7,1,9,5,3];
    let result=arr.filter(function(item){
          return item>5;
    });
    alert(result);//[7, 9];
5.reduce():迭代數(shù)組的所有項(xiàng),返回一個(gè)最終值

回調(diào)函數(shù)接收四個(gè)參數(shù):前一個(gè)值秋茫,當(dāng)前值史简,項(xiàng)的索引和數(shù)組對(duì)象;第一次迭代發(fā)生在數(shù)組的第二項(xiàng)上肛著;

    arr=[3,5,7,1,9,5,3];
    let result=arr.reduce(function(prev,cur,index,array){
          return prev+cur;
    });
    alert(result);//33;

PS:reduceRight():和reduce一樣圆兵,主要區(qū)別在于reduceRight()從數(shù)組的最后一項(xiàng)開始遍歷數(shù)組,直到數(shù)組的第一項(xiàng)枢贿;


希望我的文章可以幫助到你殉农,謝謝~~


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市局荚,隨后出現(xiàn)的幾起案子超凳,更是在濱河造成了極大的恐慌,老刑警劉巖耀态,帶你破解...
    沈念sama閱讀 222,183評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件聪建,死亡現(xiàn)場離奇詭異,居然都是意外死亡茫陆,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門擎析,熙熙樓的掌柜王于貴愁眉苦臉地迎上來簿盅,“玉大人,你說我怎么就攤上這事揍魂〗按祝” “怎么了?”我有些...
    開封第一講書人閱讀 168,766評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵现斋,是天一觀的道長喜最。 經(jīng)常有香客問我,道長庄蹋,這世上最難降的妖魔是什么瞬内? 我笑而不...
    開封第一講書人閱讀 59,854評(píng)論 1 299
  • 正文 為了忘掉前任迷雪,我火速辦了婚禮,結(jié)果婚禮上虫蝶,老公的妹妹穿的比我還像新娘章咧。我一直安慰自己,他們只是感情好能真,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,871評(píng)論 6 398
  • 文/花漫 我一把揭開白布赁严。 她就那樣靜靜地躺著,像睡著了一般粉铐。 火紅的嫁衣襯著肌膚如雪疼约。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,457評(píng)論 1 311
  • 那天蝙泼,我揣著相機(jī)與錄音程剥,去河邊找鬼。 笑死踱承,一個(gè)胖子當(dāng)著我的面吹牛倡缠,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播茎活,決...
    沈念sama閱讀 40,999評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼昙沦,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了载荔?” 一聲冷哼從身側(cè)響起盾饮,我...
    開封第一講書人閱讀 39,914評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎懒熙,沒想到半個(gè)月后丘损,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,465評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡工扎,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,543評(píng)論 3 342
  • 正文 我和宋清朗相戀三年徘钥,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片肢娘。...
    茶點(diǎn)故事閱讀 40,675評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡呈础,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出橱健,到底是詐尸還是另有隱情而钞,我是刑警寧澤,帶...
    沈念sama閱讀 36,354評(píng)論 5 351
  • 正文 年R本政府宣布拘荡,位于F島的核電站臼节,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜网缝,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,029評(píng)論 3 335
  • 文/蒙蒙 一巨税、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧途凫,春花似錦垢夹、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至犀盟,卻和暖如春而晒,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背阅畴。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評(píng)論 1 274
  • 我被黑心中介騙來泰國打工倡怎, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人贱枣。 一個(gè)月前我還...
    沈念sama閱讀 49,091評(píng)論 3 378
  • 正文 我出身青樓监署,卻偏偏與公主長得像,于是被迫代替她去往敵國和親纽哥。 傳聞我的和親對(duì)象是個(gè)殘疾皇子钠乏,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,685評(píng)論 2 360

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

  • Javascript有很多數(shù)組的方法,有的人有W3C的API春塌,還可以去MDN上去找晓避,但是我覺得API上說的不全,M...
    頑皮的雪狐七七閱讀 4,095評(píng)論 0 6
  • 數(shù)組的定義 數(shù)組是按序號(hào)排列的一組值只壳,每個(gè)值的位置都有編號(hào)(從0開始)俏拱。數(shù)組本質(zhì)上是一種特殊的對(duì)象。它的鍵名是按(...
    Allin_Lin閱讀 558評(píng)論 0 0
  • 此文章用于歸納Array的所有方法 在JavaScript中吼句,除了Object锅必,用得最多的可能就是數(shù)組Array了...
    moonburn閱讀 281評(píng)論 1 3
  • 一尔艇、數(shù)組方法里push、pop么鹤、shift终娃、unshift、join蒸甜、split分別是什么作用棠耕。 (1).arr....
    饑人谷區(qū)子銘閱讀 536評(píng)論 0 3
  • 數(shù)組的創(chuàng)建 數(shù)組是值的有序集合余佛。每個(gè)值叫做元素,每個(gè)元素在數(shù)組中都有數(shù)字位置編號(hào)窍荧,也就是索引辉巡。JS中的數(shù)組是弱類型...
    supa同學(xué)閱讀 478評(píng)論 0 3