簡體   English   中英

JavaScript選擇前n個布爾值

[英]JavaScript select first n booleans

我不知道該如何為我的問題加上標題,但讓我解釋一下我的情況:

我有一個包含6個系列數據的圖表,我只想顯示前三個非0 所以我有這樣的事情:

if(a == 0) showA = false;
if(b == 0) showB = false;
if(c == 0) showC = false;
if(d == 0) showD = false;
if(e == 0) showE = false;
if(f == 0) showF = false;

上面是檢查以查看哪些系列具有數據,並隱藏那些空數據。 但是,如果它們都具有數據,則所有6個數據將在圖表中可見。

我想要的是僅選擇前三個顯示為true showX ,並將其他標記為false這樣它們就不會顯示在圖表上。

我當時想我可以將booleans推入數組,並且只取前三個為true ,但是由於每個系列都有自己的visibility variable ,我如何將其他visibility variable標記為false

任何幫助表示贊賞

在您的if子句中使用一個計數器。 計算每個true實例,並在達到一定數量的圖表(3)時將其設置為false

代碼示例:

var max = 3;
var counter = 0;
showA = a != 0 && counter++ < max;
showB = b != 0 && counter++ < max;
showC = c != 0 && counter++ < max;
showD = d != 0 && counter++ < max;
showE = e != 0 && counter++ < max;
showF = f != 0 && counter++ < max; 

僅當值!= 0時計數器才增加的原因是JavaScript具有短路評估功能

通過使用數組,可以使其更具可伸縮性。

var values = [a, b, c, d, e, f];
var shouldBeVisible = new Array(values.length);

var counter = 0;
var max = 3;
for (var i = 0; i < values.length; i++) {
    shouldBeVisible[i] = values[i] != 0 && counter++ < max;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM