Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Перебрать массив (https://javascript.ru/forum/misc/77373-perebrat-massiv.html)

SuperZen 24.04.2019 14:50

console.log('result', [0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0]
    .reduce((acc, curr) => {
      if (acc.count < 10) {
        if (acc.prev === curr) acc.count++
        else acc = {
          prev: curr,
          count: 1
        }
      }
      return acc
    }, {
        prev: null,
        count: 0,
      }
    ).count >= 10 ? 'fail' : 'success'
  )


rxjs
import { interval } from 'rxjs';
import { scan, mergeMap, takeWhile } from 'rxjs/operators';

interval(1000).pipe(
  mergeMap(() => Promise.resolve(Math.round(Math.random() * 1))),
  scan((acc, curr) => curr === 1 ? ++acc : 0, 0),
  takeWhile(acc => {
    console.log(acc)
    return acc < 2
  })
).subscribe()

Dilettante_Pro 24.04.2019 15:12

Без массива: массив не имеет смысла. По текущим ответам.
i - общий счетчик запросов.
function answer() {
   return Math.floor(Math.random() + 0.45);
};
var limit = 5,
      fail   = 0,
      i = 0;
while (fail < limit) {
      answer() > 0? fail = 0: fail = fail + 1;
      i = i + 1;  
}
alert(i);


Часовой пояс GMT +3, время: 07:24.