2016-09-28 7 views
0

配列から3回繰り返した番号をフィルターして見つける方法はありますか?Javascriptフィルタ一致する値を持つ配列

function produceChanceNumbers(){ 
     //initiate array 
     var arr = []; 
     //begin running 10 times 
     for (var i = 0, l = 10; i < l; i++) { 
      arr.push(Math.round(Math.random() * 10)); 
     } 
     console.log(arr); 
     //inputs array in html element 
     document.getElementById("loop").innerHTML = arr.join(" "); 
     var winner = 
     //begin filtering but only replaces numbers that repeat 
     console.log(arr.filter(function(value, index, array){ 
      return array.indexOf(value) === index; 
     })); 

    }//end produceChanceNumbers 

HTML:

<button onClick="produceChanceNumbers()">1</button> 
+0

のように正確に3回を使用することができます

function filterByCount(array, count) { return array.filter(function(value) { return array.filter(function(v) { return v === value }).length === count }) } 

のようなあなたのフィルタ用に別の関数を書くと思いますか? – Li357

+0

はい、私は右の方向に向いているように感じますが、特定の数字が3回出力されたことをどのようにして認識できるか分かりません。 – Gianni

+0

[this](https://jsbin.com/raholiqeni/edit?html,js,console,output)のアイデアはありますか?トリプレットオカレンス番号は3回押すと、簡単に調整できます。 – Li357

答えて

4

私はあなたが

filterByCount([1, 1, 8, 1], 3) // [1, 1, 1] 
filterByCount([1, 1, 8, 1], 1) // [8] 
+2

私はOPが3回繰り返される数を検索しようとしていると思います。関係なく、素敵な答え! – Li357

+1

@AndrewL。ありがとうございました! – ryanve

関連する問題