javascript的數(shù)組Array

  • 創(chuàng)建數(shù)組及修改
var a=new Array();
console.log(a);
a=new Array(3);
console.log(a);//長度為3的數(shù)組
a=new Array("abc","xyz");
console.log(a);
//同上植阴,簡單的寫法
a=Array(3);
a=Array("abc","xyz");
//更簡單的寫法
a=[];
a=[3];
a=["abc","xyz"];
console.log(a.length);//數(shù)組的長度
console.log(a[1]);//數(shù)組的第二項的值
a.length=1;//改變長度
console.log(a[1]);//undefined
a[a.length]="asd";//在最后添加一個值asd
console.log(a);//結(jié)果
a[a.length]="zxc";//再添加一個
console.log(a);//結(jié)果
a=["0","1","2"];
a[99]=99;//設(shè)置第100位為99
console.log(a.length);//長度為100
console.log(a[4]);//undefined,其他位置其實未定義
  • 類型檢測
a=["qwe","asd","zxc"];
console.log(a instanceof Array);//檢測是否是數(shù)組唤蔗,但多框架的時候回有BUG
console.log(Array.isArray(a));//這方法比較好掷空,但要考慮兼容性問題润绵,IE8和比較老的瀏覽器不支持
  • 轉(zhuǎn)換方法
console.log(a.toString());//qwe,asd,zxc
console.log(a.valueOf());//["qwe","asd","zxc"]
console.log(a);//["qwe","asd","zxc"]
//alert(a.toString);
//alert(a.valueOf());
//alert(a);
console.log(a.join("||"));//qwe||asd||zxc,改變了分隔符
a.length=5;
console.log(a.join("||"));//qwe||asd||zxc||||
console.log(a.toString());//qwe,asd,zxc,,
  • Array棧操作
var a=[];
var length=a.push("wer","sdf");//添加兩項
console.log(length);//長度
console.log(a);//
length=a.push("w");//再添加
console.log(length);//長度
console.log(a);//
var item=a.pop();//移除最后一個
console.log(item);//移除項的值
console.log(a);//
item=a.pop();//再移除
console.log(item);//移除項的值
console.log(a);//
  • Array隊列操作
a=["z","x","c"];
item=a.shift();//刪除第一項
console.log(item);//
console.log(a);//
length=a.unshift("as");//第一項前添加元素
console.log(length);//
console.log(a);//
  • Array的反轉(zhuǎn)和排序
a=[1,2,3,4,5];
console.log(a.reverse());//反轉(zhuǎn),非排序
a=[1,2,3,4,10,5];
console.log(a.reverse());//5,10,4,3,2,1反轉(zhuǎn)菌瘪,非排序
console.log(a.sort());//1,10,2,3,4,5   這種就出現(xiàn)問題了逼肯,sort默認(rèn)都是按照字符來進行培訓(xùn)膜钓,10的字符比2小
//sort內(nèi)可以傳比較的方法,類似于java的覆寫
function compare(a,b){
    if(a<b) return 1;
    else if(a>b)return -1;
    else return 0;
}
console.log(a.sort(compare));//10,5,4,3,2,1   這樣比較大小就完全自定義了
  • 數(shù)組的連接與截取
a=[1,2];
console.log(a.concat(5,6,[3,4]));//[1,2,5,6,3,4]
a=[1,2,3,4,5,6];
console.log(a.slice(3));//[4,5,6] 從第四位開始截取 
console.log(a.slice(3,5));//[3,4]   四到五位
console.log(a.slice(5,3));//[] 空數(shù)組
console.log(a.slice(7));//[]  截取了一個空的
  • 數(shù)組的刪除插入替換
    • 刪除
a=[1,2,3,4,5,6,7];
aa=a.splice(1,2);//刪除第二位醋拧,兩個元素
console.log(a);//[1,4,5,6,7] 刪除后的a
console.log(aa);//[2,3] 刪除的元素
  • 插入
a=[1,2,3,4,5,6,7];
aa=a.splice(1,0,"7","8","9");// 在第二個位置 添加三個元素 慷嗜,第二個參數(shù)代表插入
console.log(a);//[1,"7","8","9",2,3,4,5,6,7] 插入后的a
console.log(aa);//[] 
  • 替換
a=[1,2,3,4,5,6,7];
aa=a.splice(1,1,"7","8","9");// 在第二個位置 替換三個元素 ,第二個參數(shù)代表替換
console.log(a);//[1,"7","8","9",3,4,5,6,7] 插入后的a丹壕,僅僅把2替換掉
console.log(aa);//2   洪添,被替換的元素 
  • 位置方法
a=[1,2,3,4,5,4,3,2,1];
console.log(a.indexOf(2));//1   在第二位上
console.log(a.indexOf(2,3));//7 從第四位開始查找2,在第八位上
console.log(a.lastIndexOf(2));//7  從后面開始查找雀费,在第八位上
console.log(a.lastIndexOf(2,3));//1 同上
console.log(a.lastIndexOf(9));//-1  沒找到返回負(fù)1
console.log(a.lastIndexOf("2"));//-1 使用嚴(yán)格等于方式 相當(dāng)于 ===

IE8及以下并不支持indexOf,可以通過如下的方式來使它支持

if (!Array.prototype.indexOf){  //如果沒有這個方法就添加比較的方法
        Array.prototype.indexOf = function(elt /*, from*/){  
        var len = this.length >>> 0;  
        var from = Number(arguments[1]) || 0;  
        from = (from < 0)  
             ? Math.ceil(from)  
             : Math.floor(from);  
        if (from < 0)  
          from += len;  
        for (; from < len; from++)  
        {  
          if (from in this &&  
              this[from] === elt)  
            return from;  
        }  
        return -1;  
      };  
    }
  • 迭代器 IE9及以上瀏覽器
    • every 數(shù)組中所有的值都滿足條件返回true
a=[1,2,3,4,5];
aa=a.every(function(item,index,array){
    console.log(item);//每一項的值
    console.log(index);//每項的索引
    console.log(array);//數(shù)組本身
    return item>=1;//全部大于等于1 返回true
})
console.log(aa);//true
aa=a.every(function(item,index,array){
    console.log(item);//每一項的值
    console.log(index);//每項的索引
    console.log(array);//數(shù)組本身
    return item>2;//第一項就不大于2干奢,只執(zhí)行一遍就結(jié)束了
})
console.log(aa);//false
  • some 數(shù)組中有一個條件滿足就返回true
a=[1,2,3,4,5];
aa=a.some(function(item,index,array){
    return item>4;//有一個滿足 返回true
})
console.log(aa);//true
aa=a.every(function(item,index,array){
    return item>6;//沒有滿足項
})
console.log(aa);//false
  • filter 過濾掉不符合條件的數(shù)據(jù)項
a=[1,2,3,4,5];
aa=a.filter(function(item,index,array){
    return item>3;//過濾掉不符合條件的數(shù)據(jù)項
})
console.log(aa);//[4,5]
  • map 對每一個數(shù)據(jù)項操作,并返回來
a=[1,2,3,4,5];
aa=a.map(function(item,index,array){
    return item*3;
})
console.log(aa);//[3,6,9,12,15]
aa=a.map(function(item,index,array){
    return item>3;
})
console.log(aa);//[false,false,false,true,true]
  • forEach循環(huán)每一項的值盏袄,無返回值忿峻,類似for方法
a=[1,2,3,4,5];
a.forEach(function(item,index,array){
    console.log(item);
    console.log(index);
    console.log(array);
})
  • reduce循環(huán)合并方法
a=[1,2,3,4,5];
aa=a.reduce(function(pre,cur,index,array){
    console.log(pre+"   "+cur+"   "+index);pre是每次return返回的值或初始值,cur為第二個值和之后每一項的值
    return pre+cur;
})
console.log(aa);//15相當(dāng)于把每項都加在了一起
//還有個reduceRight方法辕羽,就是從后往前處理
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末逛尚,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子刁愿,更是在濱河造成了極大的恐慌绰寞,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件铣口,死亡現(xiàn)場離奇詭異滤钱,居然都是意外死亡,警方通過查閱死者的電腦和手機脑题,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進店門件缸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人叔遂,你說我怎么就攤上這事他炊≌耍” “怎么了?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵痊末,是天一觀的道長蚕苇。 經(jīng)常有香客問我,道長凿叠,這世上最難降的妖魔是什么涩笤? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮幔嫂,結(jié)果婚禮上辆它,老公的妹妹穿的比我還像新娘。我一直安慰自己履恩,他們只是感情好锰茉,可當(dāng)我...
    茶點故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著切心,像睡著了一般飒筑。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上绽昏,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天协屡,我揣著相機與錄音,去河邊找鬼全谤。 笑死肤晓,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的认然。 我是一名探鬼主播补憾,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼卷员!你這毒婦竟也來了盈匾?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤毕骡,失蹤者是張志新(化名)和其女友劉穎削饵,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體未巫,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡窿撬,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了橱赠。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片尤仍。...
    茶點故事閱讀 39,785評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖狭姨,靈堂內(nèi)的尸體忽然破棺而出宰啦,到底是詐尸還是另有隱情,我是刑警寧澤饼拍,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布赡模,位于F島的核電站,受9級特大地震影響师抄,放射性物質(zhì)發(fā)生泄漏漓柑。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一叨吮、第九天 我趴在偏房一處隱蔽的房頂上張望辆布。 院中可真熱鬧,春花似錦茶鉴、人聲如沸锋玲。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽惭蹂。三九已至,卻和暖如春割粮,著一層夾襖步出監(jiān)牢的瞬間盾碗,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工舀瓢, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留廷雅,地道東北人。 一個月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓京髓,卻偏偏與公主長得像航缀,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子朵锣,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,713評論 2 354

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

  • 背景 一年多以前我在知乎上答了有關(guān)LeetCode的問題, 分享了一些自己做題目的經(jīng)驗谬盐。 張土汪:刷leetcod...
    土汪閱讀 12,744評論 0 33
  • Javascript有很多數(shù)組的方法,有的人有W3C的API诚些,還可以去MDN上去找飞傀,但是我覺得API上說的不全,M...
    頑皮的雪狐七七閱讀 4,083評論 0 6
  • JavaScript之父:Brendan Eich 诬烹。 -基本語法:借鑒了C語言和Java語言砸烦。-數(shù)據(jù)結(jié)構(gòu):借鑒了...
    饑人谷_kule閱讀 590評論 0 0
  • 照片的意義不在當(dāng)下,而在于五年绞吁,十年幢痘,五十年,一百年…… 今天無意拍到的一張家破,天色已晚颜说,趴在爺爺肩上购岗,眼睛不離鏡頭...
    汐汐麻麻閱讀 371評論 2 2
  • 一口氣看完了東野圭吾的《祈禱落幕時》喊积,不僅僅是因為其中的內(nèi)容緊湊,還因為我更想知道殺人犯的殺人動機玄妈。 東野圭吾所寫...
    日月同光閱讀 794評論 0 0