-5

こんにちは、誰かが私が抱えている次の問題の解決策を提供できれば
幸いです。指定された変数が配列に存在するかどうかを確認する必要があります。

var arr = new Array(4, 1, 4, 1, 4)  
var number = 4;  
var number_two = 1;

「var number」が「arr」に存在する回数と、Array 内のこの番号のインデックスをカウントする方法はありますか。
ありがとう、

4

3 に答える 3

1

カウンターには、次のソリューションを使用します。結果をインデックスに変換するには、JavaScript 配列について詳しく読むことができます (たとえば)。

function counter(arr, what) {
    var how_many = 0;
    for (var i = 0; i < arr.length; i++) {
        if (arr[i] == what) how_many++;
    }
    return how_many;
}

console.log(counter([4, 1, 4, 1, 4], 4));
于 2012-05-14T14:29:09.773 に答える
1

他の答えを修正するために、自分で答えます:

function counter(arr, what) {
    var indexes = [];
    for (var i = 0; i < arr.length; i++) {
        if (arr[i] === what)
            indexes.push(i);
    }
    alert(indexes.length); // how many
    alert(indexes);        // indexes
}

counter([4, 1, 4, 1, 4], 4);

デモ

于 2012-05-14T14:36:12.220 に答える
1

問題が解決するはずです。

var myArray = [ 10, 10, 20, 20, 30, 30, 40, 40, 40, 40, 50, 50, 50, 50, 60 ] ;

function Counter( myArray ) {
   var myBlocks = new Object ;

   for( var i = 0; i < myArray.length; i++ ) {
      var aBlock = myArray[i] ;
      if(myBlocks.hasOwnProperty(aBlock)) {
         myBlocks[aBlock]++ ;
      } else {
         myBlocks[aBlock] = 1 ;
      }
   }

   var str = "";
   for(var j in myBlocks ) {
      str += "\t Element " + j+ " : apears "+ myBlocks[j] + " time(s)\n" ;
   }
   alert( str ) ;
}

Counter(myArray);

デモ

于 2012-05-14T14:37:08.940 に答える