var n = 0;
while( ++n <= 100) console.log( ( !(n & 1) || n % 3 === 0) ? n.toString() : n);
function getRandom(arr, n) {
var result = new Array(n),
len = arr.length,
taken = new Array(len);
if (n > len)
throw new RangeError("getRandom: more elements taken than available");
while (n--) {
var x = Math.floor(Math.random() * len);
result[n] = arr[x in taken ? taken[x] : x];
taken[x] = --len;
}
return result;
}
var $el = $('#calc');
$el.on('keyup', function(){
var s = parseInt(
$el.val().replace(/[^0-9-]/g,'')
).toString(10);
s = ('0000' + s).substr(-Math.max(4,s.length));
$el.val('' + s.substr(0, s.length - 2) + '.' + s.substr(-2));
});
<text>
на каждую из строк. var dc = document.createElement.bind(document,'div');
var div1=dc(), div2=dc(), div3=dc();
'div,div1,div2,div3,div4,div5' // имена переменных через запятую
.split(',') // сделали из строки массив, разбив по запятой
.map( (e)=>{ this[e]=document.createElement("div")}) // наделали переменных в текущем контексте
;
var context = this;
'div,div1,div2,div3,div4,div5' // имена переменных через запятую
.split(',')
.map( function(e){ context[e]=document.createElement("div") })
;
var a = new Array(3); // [null,null,null]
a['aaa'] = 'AAA';
a['bbb'] = 'BBB';
a.length // по-прежнему 3
var ne_array = {};
ne_array['one'] = 1;
ne_array['two'] = 2;
ne_array['three'] = 3;
for( var property in ne_array) {
console.log( property, ne_array[ property]);
}
"Lorem".substr(1,1) === 'o'
это true.function count( char, str) {
var i, n;
for(i=0, n=0; i<str.length; i++) {
// здесь вы самостоятельно напишете магию!
}
return n;
}
console.log( count( "q", "Lorem ipsum dolor sit amet, consectetur adipisicing elit. Perferendis, quo voluptatum. Alias quisquam et ad aperiam illo earum debitis unde ipsa doloremque, tempore animi qui amet ullam accusamus quidem, ducimus."));
(function( nick, el) {
var L = nick.length
,cursor = 0
,arr
,timeout
,prob = 0.05 // вероятность "разгадывания" очередной позиции
,rate = 25 // частота "кадров" в секунду
,delay = 1000 / rate
;
function tweak() {
arr = nick.split('');
for(pos = cursor; pos < L; pos++) {
arr[pos] = String.fromCharCode(
1024 + Math.round( (1279 - 1024) * Math.random() )
);
}
el.innerText = arr.join('');
if( cursor === L) return; // done
if( Math.random() < prob) cursor++;
timeout = window.setTimeout( tweak, delay);
}
tweak();
})( "Sergei Sokolov", document.getElementById("effect") )
var tPing = (new Date).getTime();
, запросить ajax'ом с сервера его текущее время tServ
, получить ответ и запомнить локальное время tPong
, когда ответ получен. И положиться на очень грубую гипотезу, что сервер ответил точно посередине интервала tPing..tPong. Т.е. решить, что разница серверного времени и локального составляет ровно tDiff = tServ - tPing + (tPong - tPing) / 2;
(function(e) {
if (typeof e.onselectstart != "undefined") e.onselectstart = null;
else if (typeof e.style.MozUserSelect != "undefined") e.style.MozUserSelect = "text";
else e.onmousedown = null;
e.style.cursor = "default"
})(document.body)
function haveCommon(a,b) {
var phash = function(e){ return '' + e.id + '.' + e.item }
,ha = a.map(phash).sort()
,hb = b.map(phash).sort()
,ia = 0
,ib = 0
;
while( ia<ha.length && ib<hb.length) {
if( ha[ia] > hb[ib]) ib++;
else if( ha[ia] < hb[ib]) ia++;
else return true;
}
return false;
}
haveCommon( [{"id":1, "item": 213}]
,[{"id":1, "item": 213}, {"id":78, "item": 21}, {"id":19, "item": 13}]
) // true
function isin( v, sInterval) {
var ranges;
try{ ranges = JSON.parse('[' + sInterval + ']') }
catch( e) {
console.log("Error parsing json: " + e.message);
return -1;
}
for( i=0; i<ranges.length; i++) {
pair = ranges[i];
if( v >= pair[0] && v <= pair[1]) return 1;
}
return 0;
}
isin( 42, "[1,250],[251,500]"); // 1 – найден, 0 – не найден, -1 – ошибка.