2016-04-22 59 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

是的!你是对的!加入('')你不需要替换逗号。 –