在封装方法的时候发现个问题,颠覆我对数组的看法,直接贴代码: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']才会正确吧?
添加回答
举报
0/150
提交
取消
