2016-04-22 2 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", " : "); 

Ich weiß nicht, warum ichTypeerror: Die Methode kann nicht nennen ‚ersetzen‘ undefinierten bei compareResults

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

bekommen Kann jemand bitte erklären, warum, wie ich nichts falsch mit der oben sehen.

Vielen Dank!

+0

Dieser Code läuft ohne Fehler (nicht sicher, ob es tut, was Sie erwarten, aber keine Fehler in der Konsole). https://jsfiddle.net/qoxcw5zo/ – spaceman

Antwort

0

Es scheint, dass Sie versuchen, eine String-Methode für ein Array zu verwenden. Haben Sie versucht, das Array und die Verwendung der replace() Methode beizutreten?

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

EDIT:

Wenn Sie die , aus dem Array entfernen Sie versuchen müssen, ersetzen nicht verwenden, können Sie einfach MiddleBit = MiddleBit.join(separator) tun.

+0

String (['a', 'b', 'c']) gibt "a, b, c" zurück –

+0

@JoseHermosillaRodrigo Wusste das nicht. Aber immer noch '.join()' ist effizienter. – Baruch

+0

Ja! Du hast recht! Mit Join ('') müssen Sie kein Komma ersetzen. –