![](/img/trans.png)
[英]Best performance to select first 0 - n children of a parent in jQuery and javascript
[英]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.