2017-11-19 4 views
1

私は勉強ES 6に未定義と私が持っている期待されるテスト:スタートでは、オンライン等しい「コンピュータの

Implement the findLargestString function, which has a single argument strings (an array of strings), which will set the largestString variable defined at the top to the string which has the longest length of the array of strings passed in as the strings parameter.

私が持っているメソッド:

let largestString; 

function findLargestString(strings) { 
    // set largestString to point to the 
    // longest string found in the strings array passed in 
} 

だから私が試しています:

let largestString; 

function findLargestString(strings) { 
    let largestString = ''; 
    strings.forEach((string) => { 
     if (string.length > largestString.length) { 
      largestString = string; 
     } 
    }); 

    return largestString; 
} 

この返品のエラー:

largestString should be set to the largest string passed in 

Expected undefined to equal 'computers'. 

どうすればいいですか?

+2

私のために正常に動作しているようだどのように機能するかを見てみましょう関数内で 'let'を使って' largestString'を再宣言しました。その行から 'let'キーワードを削除してください。また、最後の 'return'は不要です。 – Pointy

+0

私はあなたのコードを試してみましたが、ここには[ペン](https://codepen.io/anon/pen/aVEaxv?editors=1111) –

+1

"が実装されています。 '変数は上に定義されています... *" - そうです。これは恐ろしい習慣です。あなたは正しいことを行い、「戻り値」を使用しました。もちろん、欠陥のあるテストではうまくいきません。 – Bergi

答えて

0

あなたのコードは、あなたが

let largestString; 
 

 
function findLargestString(strings) { 
 
    let largestString = ''; 
 
    strings.forEach((string) => { 
 
    if (string.length > largestString.length) { 
 
     largestString = string; 
 
    } 
 
    }); 
 

 
    return largestString; 
 
} 
 

 
var arr = new Array('', 'aa', 'test') 
 
console.log(findLargestString(arr));

0

あなたの関数の戻り値を使用し、「聞かせて」は

let largestString = findLargestString(strings); 
+0

オンラインの「採点」システムにコードを提出しています。システムは明らかに、相対的にグローバルな「最大ストリング」がその機能を実行する副作用として設定されることを期待している。 – Pointy

関連する問題