亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

js數組和對象問題

js數組和對象問題

楊__羊羊 2019-03-15 17:15:45
在封裝方法的時候發現個問題,顛覆我對數組的看法,直接貼代碼:String.prototype.replaces=function(reg,str){    var arr = [];    var newStr= this;    var i= '';    var d;    while((d = reg.exec(newStr))!=null) {        //debugger        try{            //console.log(d)            if(reg.global){                arr = newStr.split(d[0]);                newStr = arr.join(str);                continue            }else{                if(reg.ignoreCase){                    console.log(d instanceof Array);                    for(var x of d){                        console.log(x)                    }                }                break;            }                    }catch(e){            console.log(e)        }            }    return newStr    }var s ="我是a,c,a,cc,c,c,cc".replaces(/a/i,'b')console.log(s);把上面代碼直接貼到控制臺就可以測試,問題來了,d這個變量,他到底是array還是object打印出的d: console.log(d instanceof Array)得出d是數組,但是用for循環和for of都只能打印出一個變量,用d[1]訪問會報錯,d['index']則不會報錯反而正確,如果他是對象數組,則d[1]['index']才會正確吧?
查看完整描述

3 回答

?
搖曳的薔薇

TA貢獻1793條經驗 獲得超6個贊

是數組,數組其實也是對象,它上面可以掛載其他屬性


查看完整回答
反對 回復 2019-03-22
?
莫回無

TA貢獻1865條經驗 獲得超7個贊

var a=[];
a['aa']=1;
a instanceof Array
關聯數組
a.length=10;
for(let i of a){console.log(i)}
of是根據length來的 不會遍歷到非數字下表

查看完整回答
反對 回復 2019-03-22
  • 3 回答
  • 0 關注
  • 412 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號