web-dev-qa-db-ja.com

JavaScriptでブール配列を初期化する方法

私はjavascriptを学習していて、javascriptでブール配列を初期化したいと思っています。

私はこれをやってみました:

 var anyBoxesChecked = [];
 var numeroPerguntas = 5;     
 for(int i=0;i<numeroPerguntas;i++)
 {
    anyBoxesChecked.Push(false);
 }

しかし、それは機能しません。

グーグルした後、私は this 方法だけを見つけました:

 public var terroristShooting : boolean[] = BooleanArrayTrue(10);
 function BooleanArrayTrue (size : int) : boolean[] {
     var boolArray = new boolean[size];
     for (var b in boolArray) b = true;
     return boolArray;
 }

しかし、これは配列を初期化するだけでは非常に難しい方法だと思います。それを行う別の方法を知っている人はいますか?

11
Alberto Crespo

デバッグでキャッチされるコードでエラーが発生していました。 intはJSキーワードではありません。 varを使用すると、コードは完全に機能します。

var anyBoxesChecked = [];
var numeroPerguntas = 5;     
for (var i = 0; i < numeroPerguntas; i++) {
  anyBoxesChecked.Push(false);
}

[〜#〜] demo [〜#〜]

8
Andy

私はそれが遅いことを知っていますが、ブール値で配列を初期化するこの効率的な方法を見つけました

    var numeroPerguntas = 5;     
    var anyBoxesChecked = new Array(numeroPerguntas).fill(false);
    console.log(anyBoxesChecked);
33
warl0ck

Array.applyとmapを使用できます...

var numeroPerguntas = 5;  
var a = Array.apply(null, new Array(numeroPerguntas)).map(function(){return false});
alert(a);
0

整数演算とビット演算を使用する方が効率的ではないでしょうか?

<script>
var boolarray = 0;

function comparray(indexArr) {
  if (boolarray&(2**(indexArr))) {
    boolarray -= 2**(indexArr);
    //do stuff if true
  } else {
    boolarray += 2**(indexArr);
    //do stuff if false
  }
}
</script>
0
Pepijn Ekelmans