2017-10-12 11 views
2
window.onload = oppstart; 
var string=[]; 

function oppstart() { 
document.getElementById("knapp").onclick=knapp; 
} 

function knapp(){ 
var felt = document.getElementById("felt").value; 

var array = new Array(); 
array = felt.split(","); 

for (var i = 0; i < array.length; i++) { 
    console.log(array[i]); 

} 
var skrivUt = document.getElementById("utskrift"); 
       document.getElementById("utskrift").innerHTML = " "; 

} 

私はHTMLで "Felt"と呼ばれる入力フィールドを持っています。ユーザーが数字「1,2,3,4,5」などを入力すると、私はそれらを分割し、カンマなしでコンソールログに入れます。私の値を持ってから何をしたいのですか?数値の出現回数をカウントし、結果をinnerHTML "skrivUT"に出力します。入力フィールドに書かれた配列の出現数をどのように数えますか?

+0

関数 'knapp'の終わりにこれを追加:' skrivUt.innerHTML = "" + Array.lengthと+ ""; '。 –

+0

これは、発生数ではなく、インデックスの数を数えます –

答えて

0

あなたは配列をとって、単一の値の出現を数えるためにオブジェクトを使うことができます。カウントした後、オブジェクトを表示します。

カウントはプロトタイプのないオブジェクトで動作し、真理値を持つプロパティが使用可能かどうかを確認してからカウンタを増やします。 oserの場合、最初のカウントをプロパティに割り当てます。

window.onload = oppstart; 
 

 
function getPlural(number, word) { 
 
    return number === 1 && word.one || word.other; 
 
} 
 

 
function joinNice(array) { 
 
    var a = array.slice(); // take copy, prevent mutation of array 
 
    return a.concat(a.splice(-2, 2).join(' and ')).join(', '); 
 
} 
 

 
function oppstart() { 
 
    document.getElementById("knapp").onclick = knapp; 
 
} 
 

 
function knapp() { 
 
    var count = Object.create(null), 
 
     felt = document.getElementById("felt").value, 
 
     skrivUt = document.getElementById("utskrift"), 
 
     array = felt.split(","), 
 
     i; 
 

 
    for (i = 0; i < array.length; i++) { 
 
     if (count[array[i]]) { 
 
      ++count[array[i]]; 
 
     } else { 
 
      count[array[i]] = 1; 
 
     } 
 
    } 
 

 
    utskrift.innerHTML = 'You wrote: ' + joinNice(Object.keys(count).map(function (k) { 
 
     return count[k] + ' ' + getPlural(count[k], time) + ' item ' + k; 
 
    })) + '.'; 
 
} 
 

 
var time = { one: 'time', other: 'times' };
<input id="felt"> <button id="knapp">submit</button> 
 
<p id="utskrift"></p>

+0

私はあなたがこれを説明した方法が好きです!ありがとうございました。私はあなたのコードスニペットを実行したとき、私は括弧をプリントアウトしました。それは起こるはずですか?私は携帯電話のATMにいるので、まだコードをテストすることはできません –

+0

右、あなたは出力にオブジェクト全体を取得します。フォーマットされた別の出力を取得したい場合は、キーと値を繰り返し処理します。どのように結果が見えるかは、質問には欠落しています。 –

+0

私は見る!オブジェクトとJSONなしでそれを行うための他の方法はありますか? –

関連する問題