我不知道爲什麼控制檯說'不能讀取屬性''未定義的'長度'當我結合兩個條件在一起嗎?如果聲明與&&和.length
//After two if's combined by &&:
for(n= 0, len=i.length; n<len; n++) {
if(typeof n[i] !== 'string' && n[i].length > longest.length)
longest = n[i];
}
// Before I combine two if's:
for(n= 0, len=i.length; n<len; n++) {
if(typeof n[i] !== 'string') continue;
if(n[i].length > longest.length) longest = n[i];
}
檢查您的變量命名。你使用'n'就像是一個數組/字符串和一個數字在同一時間。 – Teemu
你的兩個版本正在做完全不同的事情。如果'n [i]'不是字符串,第一個比較長度。第二個只有在它是一個字符串時才這樣做。但'n [i]'將永遠是'undefined',因爲數字不是數組。我想你應該使用'i [n]',其中'i'是一個可能包含一些字符串的數組。 – blex
第一個條件如果n是零,那麼n [i] .length是多少? –