我是一個JavaScript初學者,在做一些CodeWars.com問題。我遇到了這個問題,由於「無法讀取屬性長度爲空」錯誤,我被卡住了。我試圖查找這個錯誤,並且在我的程序中找不到問題所在。使用正則表達式時無法讀取屬性長度空錯誤
分配是:
「檢查,看是否有串有相同數量的‘X’和'O公司的方法必須返回一個布爾值,而且不區分大小寫字符串可以包含任何字符。」
這是我到目前爲止已經寫的:
function XO(str) {
var x = "x";
var o = "o";
var numX = str.match(/x/gi).length;
var numO = str.match(/o/gi).length;
while(str.indexOf(x) > -1 || str.indexOf(o) > -1) {
if(numX == numO){
return true;
}
}
if (numX === -1 && numO === -1){
return true;
}
}
XO("xoxo");
這個作業也說,如果有既不是X或O,則程序應返回true。
'match'可以返回'null'和'null.length'將拋出這個錯誤。嘗試'(str.match(/ x/gi)||'').length' – elclanrs
爲什麼你有'while'循環?條件的值在循環體內不會改變。這應該是'如果'。 – Barmar