var src = ["груша", "яблоко", "апельсин", "груша", "банан", "груша", "апельсин"];
var dict = src.reduce( function(p,c){
if( p.hasOwnProperty(c)) p[c]++;
else p[c] = 1;
return p;
}, {});
// теперь нужно вывести dict в порядке убывания значений:
// создать массив объектов с двумя полями: слово и число
// и отсортировать его по убыванию поля с числом.
var arr = [], word;
for( word in dict) arr.push({ w: word, n: dict[word] });
arr.sort( function(a,b){ return b.n - a.n });
// массив arr теперь отсортирован правильно, осталось вывести:
for( var i = 0; i < arr.length; i++) console.log( arr[i].w +' - '+ arr[i].n );
6. Граффити (type = graffiti)
Это устаревший тип вложения. Он может быть возвращен лишь для записей, созданных раньше 2013 года. Для более новых записей граффити возвращается в виде вложения с типом photo.
A.then(B).then(C)
:$("#button").click( animate );
function animate() {
number1().then( number2).then( number3);
}
function number1() { // асинхронная, вернет промис
return $('p').each( function(i) { $(this).delay((i++) * 500).fadeTo(2000, 1)} )
.promise();
}
function number2() { // асинхронная, вернет промис
return $('p').hide("fast").promise();
}
function number3() { // выполнится мгновенно
$('#result').html("Hello World");
}
complete
$("#button").click( number1 );
function number1() {
var $p = $('p'), len = $p.length;
$p.each(function(i) {
$(this).delay((i++) * 500).fadeTo(2000, 1, function(){
if(i===len) $( "p" ).hide( "fast", number2); // выполнить только для последнего из всех
});
})
}
function number2() {
var number2func = document.getElementById('result');
number2func.innerHTML = "Hello World";
}
$(".image-portfolio").on( 'click', function(){
window.dispatchEvent(
new CustomEvent( 'sect', { detail: $(this).data("section")} )
);
});
// где-то далеко далеко ловим данные из события
window.addEventListener('sect', function(e) {
$('body').append('<div>кликнули на ' + e.detail + '</div>');
});
function trimmer(n) {
var s = n.toString(), pos = s.indexOf('.');
return parseFloat( s.substr( 0, !!~pos ? pos+4 : s.length));
}
trimmer(32.0123456) // 32.012
trimmer(32.000000001) // 32
trimmer(32.1000000001) // 32.1
trimmer(32) // 32
trimmer(.001) // 0.001
trimmer(32.987654) // 32.987
trimmer(32.9999999999) // 32.999
parseFloat( (32.3).toFixed(3)) // 32.3
parseFloat( (32.12345).toFixed(3)) // 32.123
parseFloat( (32.98765).toFixed(3)) // 32.988
parseFloat( (32.99999).toFixed(3)) // 33
<div>
с каким-то содержимым, которое вы хотите «закодировать».function encode(s) {
var i, out = [];
for(i=0;i<s.length;i++) out.push(s.charCodeAt(i));
return out.join('!');
}
var button = document.getElementById('btn');
function f1() {
button.disabled = true;
button.onclick = todo.shift(); // заменили обработчик на следующий из очереди
var timeoutID = setTimeout( /* запуск таймера */
function() { button.disabled = false},
1000
);
}
var todo = []; // очередь одноразовых задач
todo.push(f1,f1,f1); // три раза f1, потом добавьте "другие" - f2, f3
button.onclick = todo.shift(); // зарядить первую