在封裝方法的時候發現個問題,顛覆我對數組的看法,直接貼代碼: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']才會正確吧?
js數組和對象問題
楊__羊羊
2019-03-15 17:15:45