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

「を置き換える」私は、私は上記と間違って何も見えないようTypeError例外:メソッドを呼び出すことはできませんが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);

EDIT:

あなたが代わる使用する必要はありません配列から,を削除しようとしている場合は、あなただけのMiddleBit = MiddleBit.join(separator)を行うことができます。

+0

String(['a'、 'b'、 'c'])は "a、b、c"を返す –

+0

@JoseHermosillaRodrigoそれを知らなかった。しかし、 '.join()'を使っても効率的です。 – Baruch

+0

はい!あなたが正しい! join( '')を使用すると、コンマを置き換える必要はありません。 –

関連する問題