簡體   English   中英

如何根據循環內部的某些條件使用Array.map迭代來停止索引計數增量?

[英]How to stop index count increment using Array.map iteration based on certain condition inside loop?

比如說

Array.map((obj, index) => (
    condition === true ? 
    default index counter increment
    : do not increase index count
))

我希望我的計數器只有在我的條件成立的情況下才會增加,是否有任何解決方法? 當我喜歡基於對象向行添加替換顏色時我遇到問題,如果我想拒絕某些對象並且不創建任何行,即使行沒有創建,仍然我的計數器增加,顏色適用於實際上不存在的行並產生UI缺陷。

您可以使用Array.prototype.forEach()並根據逐個應用於數組的所有元素的“條件”遞增counter變量:

let counter = 0;
Array.forEach((o, i) => condition && counter++);

你可以使用Array#reduce和一個計數器,比如

var count = array.reduce(function (r, a, i) {
    return r + (condition);
}, 0);

而不是Array#map ,因為您需要單個值而不是具有所有undefined值的新數組。

暫無
暫無

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

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