2016-04-12 20 views
-9

したがって、基本的には、ランダムな文字列に表示される文字と回数を要約するスクリプトが必要です。キャップは、例えば、無視する必要があります:h = 2, e = 2, l = 4, o = 2 HTML文書に印刷された:文字列内に文字が表示される回数

var myString = promt ("Type anything: "); //"hello Hello"; 

最終結果はこのようなものにする必要があります。

私はmyString.match().lengthを使ってみることに成功しました。私の主な問題は、どの文字をチェックし、2回チェックしないかを定義することです(たとえば、文字列に2つの「h」がある場合は2回チェックしません)。

+3

私たちが助けてくれるように、これまでに何を試してくださいか教えてください。 –

+1

また、あなたの質問は不明です。文字列に2つの "h"がある場合は2回チェックしません) '" _しかし、あなたの例では2つの "h"文字があり、両方を数えます。 – j08691

+2

これは楽しい宿題のようです。コードの断片を投稿していないので、配列を使ってみましたか? –

答えて

0
var str = 'hello Hello'; 
var count = {}; 
str.split('').forEach(function(v) { 
    if (v === ' ') return; 
    v = v.toLowerCase(); 
    count[v] = count[v] ? count[v] + 1 : 1; 
}) 

console.log(count); 
0

あなたは、このソリューションは、古いブラウザでは動作しませんarrow機能(ES2015標準)を使用しています

var o = {}; 
 

 
"hello Hello".toLowerCase() 
 
    .replace(/\s+/, '') 
 
    .split('') 
 
    .forEach(e => o[e] = ++o[e] || 1); 
 

 
document.write(JSON.stringify(o));

一時オブジェクトを使用することができます。

+1

これはES6でのみ機能することに注意してください。 * [JavaScriptで "=>"(等号とそれ以上の形で形成される矢印)の意味は何ですか?](http://stackoverflow.com/a/24900924/2057919)多くのブラウザで利用可能なJavaScriptのバージョンでは動作しません。 (もちろん、本当の努力をしていないときに、彼らのために人々の宿題をするのは悪い方針です。) –

関連する問題