如何在javascript中初始化布尔数组

问题描述 投票:0回答:7

我正在学习 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;
 }

但我发现这是初始化数组的一种非常困难的方法。有人知道另一种方法吗?

javascript arrays boolean
7个回答
98
投票

我知道已经晚了,但我发现了这种用布尔值初始化数组的有效方法

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


13
投票

您在调试时发现了该代码的错误。

int
不是 JS 关键字。使用
var
并且您的代码可以完美运行。

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

演示


4
投票

您可以使用Array.from

Array.from({length: 5}, i => i = false);


2
投票

这也可以是一种解决方案

var boolArray = [true,false];
console.log(boolArray);

0
投票

您可以使用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
投票

const arr = Array.from({length: 5}, () => false)
console.log(arr.join(", "))

© www.soinside.com 2019 - 2024. All rights reserved.