仿寫(xiě)數(shù)組對(duì)象


title: 仿寫(xiě)數(shù)組對(duì)象
date: 2017-11-13 20:26:25
tags:


數(shù)組對(duì)象 <font style="color: #8D0000;">push | pop | shift | unshift | reverse | splice | join | slice</font>

prototype給某個(gè)類(lèi)添加屬性或方法

    var a=[1,2,3];
    var b=[4,5,6];

<font style="color: #8000D0;">給數(shù)組類(lèi)(所有的數(shù)組對(duì)象)添加myPush方法</font>

        Array.prototype.myPush=function(){
            // 哪個(gè)數(shù)組對(duì)象調(diào)用myPush,this就指向調(diào)用myPush的數(shù)組對(duì)象
            // console.log(this);
            // 調(diào)用的時(shí)候骇陈,寫(xiě)了多少個(gè)參數(shù)托慨,arguments就有幾個(gè)元素葵孤,arguments是所有參數(shù)組成的數(shù)組担钮,稱(chēng)為參數(shù)列表
            // console.log(arguments);
            // arguments參數(shù)列表,獲取用戶寫(xiě)入的參數(shù)列表
            for(var i=0;i<arguments.length;i++){
                this[this.length]=arguments[i];
            }
        }
        a.myPush(44,55,66);
        console.log(a);

<font style="color: #8000D0;">給數(shù)組類(lèi)(所有的數(shù)組對(duì)象)添加myPop方法</font>

        Array.prototype.myPop=function(num){
            // 無(wú)參數(shù)
            // var res=this[this.length-1];
            // this.length=this.length-1;
            // 有參數(shù)
            var res=[];
            for(var i=this.length-num;i<this.length;i++){
                res.myPush(this[i]);
            }

            this.length=this.length-num;
            return res;
        }
        // a.myPop(2);
        console.log(a.myPop(2),a);

<font style="color: #8000D0;">給數(shù)組類(lèi)(所有的數(shù)組對(duì)象)添加myReverse方法</font>

        Array.prototype.myReverse=function(){
            for(var i=0;i<parseInt(this.length/2);i++){
                // this[i]和this[this.length-1-i]交換即可
                var temp=this[i];
                this[i]=this[this.length-1-i];
                this[this.length-1-i]=temp;
            }
        }
        console.log(a);
        a.myReverse();
        console.log(a);

<font style="color: #8000D0;">給數(shù)組類(lèi)(所有的數(shù)組對(duì)象)添加myUnshift方法</font>

        Array.prototype.myUnshift=function(){
            this.myReverse();
            for(var i=arguments.length-1;i>=0;i--){
                this.myPush(arguments[i]);
            }
            this.myReverse();
        }
        console.log(a);
        a.myUnshift(100,200);
        console.log(a);

<font style="color: #8000D0;">給數(shù)組類(lèi)(所有的數(shù)組對(duì)象)添加myShift方法</font>

        Array.prototype.myShift=function(){
            this.myReverse();
            var res=this.myPop(2);
            this.myReverse();
            return res;
        }
        // a.myShift();
        console.log(a.myShift(),a);

<font style="color: #8000D0;">給數(shù)組類(lèi)(所有的數(shù)組對(duì)象)添加myJoin方法</font>

        Array.prototype.myJoin=function(str){
            if(str===undefined){
                str=",";
            }
            var all='';
            for(var i=0;i<this.length-1;i++){
                all += this[i]+str;
            }
            all+=this[this.length-1];
            return all;

            // // 方法二
            // all+=this[0];
            // for(var i=1;i<this.length-1;i++){
            //  all += this[i]+str;
            // }
            // return all;

            // // 方法三
            // var all='';
            // for(var i=0;i<this.length-1;i++){
            //  if(i==this.length-1){
            //      str="";
            //  }
            //  all += this[i]+str;
            // }
            // return all;
        }
         console.log(a.myJoin(""));

         console.log(Boolean("")===Boolean(undefined));

<font style="color: #8000D0;">給數(shù)組類(lèi)(所有的數(shù)組對(duì)象)添加mySplice方法</font>

        Array.prototype.mySplice=function(index,length){
            var res=[];
            var newArr=[];
            // 把index-length范圍的數(shù)做成數(shù)組,作為mySplice的返回值
            for(var i=index;i<index+length;i++){
                res.myPush(this[i]);
            }
            // 拼成新的數(shù)組分為三部分
            // 1尤仍、范圍之前箫津,index之前
            for(var i=0;i<index;i++){
                newArr.myPush(this[i]);
            }
            // 2、參數(shù)列表里面下標(biāo)2(包括下標(biāo)2)之后的參數(shù)
            for(var i=2;i<arguments.length;i++){
                newArr.myPush(arguments[i]);
            }
            // 3宰啦、范圍之后苏遥,index+length開(kāi)始,到最后一個(gè)
            for(var i=index+length;i<this.length;i++){
                newArr.myPush(this[i]);
            }
            // newArr 新數(shù)組
            this.length=0;
            for(var i=0;i<newArr.length;i++){
                this.myPush(newArr[i]);
            }
            return res;
        }
        console.log(a);
        console.log(a.mySplice(2,1,33,44,55,66));
        console.log(a);

<font style="color: #8000D0;">給數(shù)組類(lèi)(所有的數(shù)組對(duì)象)添加mySlice方法</font>

        Array.prototype.mySlice=function(start,end){
            var res=[];
            for(var i=start;i<end;i++){
                res.myPush(this[i]);
            }
            return res;
        }
        console.log(a);
        console.log(a.mySlice(2,4));
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末绑莺,一起剝皮案震驚了整個(gè)濱河市暖眼,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌纺裁,老刑警劉巖诫肠,帶你破解...
    沈念sama閱讀 210,978評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異欺缘,居然都是意外死亡栋豫,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門(mén)谚殊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)丧鸯,“玉大人,你說(shuō)我怎么就攤上這事嫩絮〈灾” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,623評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵剿干,是天一觀的道長(zhǎng)蜂怎。 經(jīng)常有香客問(wèn)我,道長(zhǎng)置尔,這世上最難降的妖魔是什么杠步? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,324評(píng)論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮榜轿,結(jié)果婚禮上幽歼,老公的妹妹穿的比我還像新娘。我一直安慰自己谬盐,他們只是感情好甸私,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,390評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著飞傀,像睡著了一般颠蕴。 火紅的嫁衣襯著肌膚如雪泣刹。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,741評(píng)論 1 289
  • 那天犀被,我揣著相機(jī)與錄音椅您,去河邊找鬼。 笑死寡键,一個(gè)胖子當(dāng)著我的面吹牛掀泳,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播西轩,決...
    沈念sama閱讀 38,892評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼员舵,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了藕畔?” 一聲冷哼從身側(cè)響起马僻,我...
    開(kāi)封第一講書(shū)人閱讀 37,655評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎注服,沒(méi)想到半個(gè)月后韭邓,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,104評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡溶弟,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年女淑,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片辜御。...
    茶點(diǎn)故事閱讀 38,569評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡鸭你,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出擒权,到底是詐尸還是另有隱情袱巨,我是刑警寧澤,帶...
    沈念sama閱讀 34,254評(píng)論 4 328
  • 正文 年R本政府宣布碳抄,位于F島的核電站愉老,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏纳鼎。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,834評(píng)論 3 312
  • 文/蒙蒙 一裳凸、第九天 我趴在偏房一處隱蔽的房頂上張望贱鄙。 院中可真熱鬧,春花似錦姨谷、人聲如沸逗宁。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,725評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)瞎颗。三九已至件甥,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間哼拔,已是汗流浹背引有。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,950評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留倦逐,地道東北人譬正。 一個(gè)月前我還...
    沈念sama閱讀 46,260評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像檬姥,于是被迫代替她去往敵國(guó)和親曾我。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,446評(píng)論 2 348

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

  • 第5章 引用類(lèi)型(返回首頁(yè)) 本章內(nèi)容 使用對(duì)象 創(chuàng)建并操作數(shù)組 理解基本的JavaScript類(lèi)型 使用基本類(lèi)型...
    大學(xué)一百閱讀 3,216評(píng)論 0 4
  • title: 仿寫(xiě)字符串對(duì)象date: 2017-11-14 22:02:18tags: 字符串類(lèi)型 <font ...
    淺夏_cd06閱讀 133評(píng)論 0 0
  • 多線程-thread Thread類(lèi)和Runnable接口都在java.lang包中健民。 內(nèi)容: 1.多線程的基本概...
    可樂(lè)W閱讀 433評(píng)論 0 0
  • 原型和原型鏈 示例如何準(zhǔn)確判斷一個(gè)變量是數(shù)組類(lèi)型寫(xiě)一個(gè)原型鏈繼承的例子描述 new 一個(gè)對(duì)象的過(guò)程zepto(或其...
    xunuo0x閱讀 238評(píng)論 0 0
  • 一整天都在忙碌著抒巢。 早上起晚了,安頓好小孩后猛然記起昨晚念及幾遍今早要買(mǎi)上佳肥豬肉秉犹。急急忙忙蛉谜,拖著倆孩子的手,去肉...
    添一抹嵐閱讀 487評(píng)論 0 5