var arr = ["*","##","***","&&","****","##*"]; arr[7] = "**"; for(var i =0;i<arr.length;i++){ if(arr[i][0]=="*"){ console.log(arr[i]); } }
因为此时arr[6]的值未定义(undefined),因此当i==6时arr[6][0]是没有意义的,也无法用于if(arr[i][0]=="*")的运算。for(var i in arr) 应该是可以规避undefined的元素,具体代码请百度。
没看懂你要干嘛?定义的是一维数组,判断的时候为什么要用当做二维数组来使用?
因为此时arr[6]的值未定义(undefined),所以console.log(arr[6])是没有意义的。