Как остановить приращение индекса, используя итерацию Array.map на основе определенных условий внутри цикла?

1

например, для

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

Я хочу, чтобы мой счетчик увеличивался только в том случае, если мое условие истинно, есть ли какая-нибудь работа для этого? Я сталкиваюсь с проблемами, когда мне нравится добавлять альтернативные цвета в строки на основе объекта, и в случае, если я хочу отклонить некоторые объекты и не создавать никаких строк, даже если строка не создается, но мой счетчик увеличивается, цвета применяются на который на самом деле не существует и создает дефект пользовательского интерфейса.

Теги:

2 ответа

2

Вы можете использовать Array.prototype.forEach() и увеличиваем counter переменной на основе "состояние", которое применяется ко всем элементам массива по одному:

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

Вы можете использовать Array#reduce с помощью счетчика, например

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

вместо Array#map, потому что вам нужно одно значение, а не новый массив со всеми undefined значениями.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню