состояние массива
Привет!
Как узнать, что это тот массив, который мне нужен? Есть массив длиной 5 из bool переменных; var arr = []; arr[0]=document.getElementByID['cell'+(index-1)] ? true :false; arr[1]=document.getElementByID['cell'+(index-2)] ? true :false; arr[2]=true; arr[3]=document.getElementByID['cell'+(index+1)] ? true :false; arr[4]=document.getElementByID['cell'+(index+2)] ? true :false; Массив принимает разные значения, исключение только 3 элемент, который всегда true. Мне нужно выловить момент, три true вместе идут, то есть: Код:
[false, false, true, false, false] не подходить |
вариант, если нужно 3 или больше подряд идущих true выцепить
function fiveBoolean(a,b,c,d,e){ if (b) if (a||d) return true; else return false; else if(d) return e; } alert(fiveBoolean(false, true, true, true, false)); alert(fiveBoolean(false, false, true, true, false)); alert(fiveBoolean(false, false, true, true, true)); |
Берите срез массива, последние три его элемента, и суммируете их, если результат равен 3 - значит тот.
var check = array_name.slice(2).reduce(function(p, c) { return p + c }); |
Спасибо!
var check = function fiveBoolean(a,b,c,d,e){ if (b){ if (a&&c) return true; if (c&&d) return true; } if (c){ if (b&&d) return true; } if (d){ if (c&&e) return true; } return false; } |
ild,
function check(a,b,c,d,e){ return a && b || b && d || d && e; } alert(check(true, false, true, false, true))//false alert(check(false, false, true, true, true)) //true alert(check(true, false, true, true, false))//false |
Цитата:
|
рони,
только function check(a,b,c,d,e){ return a && b || b && c || d && e; } alert(check(true, true, false, false, false)) //true alert(check(false, true, true, false, false)) //true alert(check(false, false, false, true, true)) //true /(?:true){3,}/.test([false, false, true, true, true].join('')) но я бы так не делал :) function check(a,b,c,d,e){ return (a && b && c) || (b && c && d) || (c && d && e); } alert(check(true, true, false, false, false)) //false alert(check(false, true, true, false, false)) //false alert(check(false, false, false, true, true)) //false alert(check(true, false, true, false, true))//false alert(check(false, false, true, true, true)) //true alert(check(true, false, true, true, false))//false |
nerv_,
всё ок без только - с по умолчанию true Цитата:
Цитата:
давно исправлено на b && d |
Круто. Спасибо!
|
а как подсчитать, сколько в данный момент в массиве количество true?
|
Часовой пояс GMT +3, время: 03:42. |