2012-03-06 13 views
0

と私はそれを見つけることができません!コンソールに戻り、上記のコード「undefinedipsum」私の機能には何かが定義されていません

// At the end 
// Call substring, passing "lorem ipsum dolor" to `input`, `6` to 
// `start`, and `10` to `end`. 

var substring = function(input, start, end){ 
    var i; 
    var subset; 
    for(i=start; i<=end; i++){ 
     subset += input[i] 
    } 
    return subset; 
} 

console.log(substring("lorem ipsum dolor",6,10)) 
+0

@ADC:(私はそれをお勧めしませんが)いや、それはそれが働い –

答えて

4

subsetは、最初の連結が実行されるときに、未定義である(そして、文字列とを連結するので、undefinedを文字列に変換されます)。私はあなたがこれを自分で書いている理由を完璧なString.prototype.substring方法が存在し、すでにあった場合に本当の問題はしかしだと思う

var substring = function(input, start, end){ 
    var i; 
    var subset = ""; 
    for(i=start; i<=end; i++){ 
     subset += input[i]; 
    } 
    return subset; 
} 

:空の文字列でsubsetを初期化?

+0

を省略することができ、感謝します。 – metrampaz

+0

問題はありません。うれしいことです:)組み込み関数を使うのではなく、独自の 'substring'関数を書いている理由はありますか? –

2

subsetを初期化します。

var subset =""; 
1

変数を初期化するのを忘れました。

var subset = ''; 

そうしない+=を開始するための、何かの上には、文字列ではありません。

すなわち

var x; 
console.log(x+''); // "undefined" 

x = x + 'a'; 
console.log(x); // "undefineda" 
関連する問題