2016-04-22 58 views
0
function generateBC(url, separator) { 
var splitthis = url.split("/"); 
var MiddleBit = []; 
var RemoveFirstElement = splitthis.shift(); 
var RemoveLastElement = splitthis.pop(); 
var RemoveLastElementDot = RemoveLastElement.substring(0, RemoveLastElement.indexOf('.')).toUpperCase(); 
var arrayLength = splitthis.length; 
for (var i = 0; i < arrayLength; i++) { 
var elementOk = splitthis[i].toUpperCase(); 
var urlOk = "<a href='/pictures/'>" + elementOk + "</a>"; 
    MiddleBit.push(urlOk); 
} 
var ConMiddleBitS = String(MiddleBit).replace(/,/g , separator); 
var completed = '<a href="/">HOME</a> ' + separator + ConMiddleBitS + separator + "<span class='active'>" + RemoveLastElementDot + "</span>" ; 
document.write(completed); 
} 
generateBC("mysite.com/pictures/hotels/tens/holidays.html", " : "); 

的不確定的「替換」我不知道爲什麼我得到類型錯誤:無法調用在compareResults

TypeError: Cannot call method 'replace' of undefined at compareResults` on .replace() ?

有人可以請解釋原因,我認爲沒有錯上述。

謝謝你!

+0

該代碼運行良好,沒有任何錯誤(不知道它是否做你期望的,但沒有在控制檯中的錯誤)。 https://jsfiddle.net/qoxcw5zo/ – spaceman

回答

0

看來你正在嘗試在數組上使用String方法。你有沒有嘗試加入陣列和使用replace()方法?

var ConMiddleBitS = MiddleBit.join('').replace(/,/g , separator);

編輯:

如果你想刪除你不需要使用更換陣列,,你可以做MiddleBit = MiddleBit.join(separator)

+0

字符串(['a','b','c'])返回「a,b,c」 –

+0

@JoseHermosillaRodrigo不知道。但仍然使用'.join()'更高效。 – Baruch

+0

是的!你是對的!加入('')你不需要替換逗號。 –