date_diff()
– из двух дат получите объект с числом дней, месяцев, лет между ними. Только сбросьте на 0 время у обеих дат, чтобы работать только с датами. Такой вариант пригодится для более сложного случая, когда вы захотите ещё "Два дня назад", "Послезавтра" и "через неделю" arr = [1,2,3]
arr.forEach((a,i, theArr) => {
a = a + 1 ;
theArr[i] = a;
})
console.log(arr) // [2,3,4]
function changeStuff(a, b, c)
{
a = a * 10;
b.item = "changed";
c = {item: "changed"};
}
var num = 10;
var obj1 = {item: "unchanged"};
var obj2 = {item: "unchanged"};
changeStuff(num, obj1, obj2);
console.log(num); // 10
console.log(obj1.item); // changed
console.log(obj2.item); // unchanged
const $out = $('#suggest');
const $in = $('#in-search');
const technics = {
'Автовышка' : {
"name" : "secret"
},
'Эксковатор Погрузчик' : {
"name" : "secret"
},
}
$in.on('input', function(){
const v = $(this).val().toLowerCase();
if(v.length < 3) {
$out.html('');
return;
}
const matches = [];
for(let title in technics) {
if(!!~title.toLowerCase().indexOf(v))
matches.push( title );
}
$out.html(
matches
.map(t=>t + ': ' +technics[t].name)
.join('<br>')
);
});
!!~
перед indexOf(..) приводит к true/false найдено/не найдено. Всё, кроме -1 даёт true. hours
. Поэтому стоит сначала переделать объекты в словари, где ключ час, а значение - объект с car
и bike
for(var i = 0; i <= 23; i++)
document.body.innerHTML += ' ' + ('00' + i).substr(-2);
строковых элементов со временем
var s = "2018-08-02 12:56";
var d = new Date(s); // объект Date в текущем часовом поясе браузера
+d // 1533203760000
[
{ ts: 1533203760000, title: "сварить кофе" },
{ ts: 1533203780000, title: "съесть булочку" },
]
setTimeout()
на время до него. Раньше обновлять не имеет смысла. При добавлении/удалении событий в массив, конечно, надо всё обновлять/пересчитывать. Поэтому и значение таймера var timer = setTimeout(...)
надо сохранить, чтобы иметь возможность отменить. var step=1000, R, offset = parseInt(Args.offset), loop=0,
out = { oid: parseInt(Args.oid), ids:[], mass: parseInt(Args.mass), overlap: parseInt(Args.overlap), offset: 0, next: 0 };
while( offset <= out.mass && loop < 25) {
R = API.groups.getMembers({ "group_id": out.oid, "sort": "id_asc", "offset": offset, "count": step});
if( !!R.items && R.items.length > 0) {
out.ids.push( R.items);
out.mass = R.count;
out.loop = loop;
out.offset = offset;
offset = offset + step - out.overlap;
out.next = offset;
loop = loop + 1;
} else {
out.error = "Empty items";
out.r = R;
return out;
}
}
return out;
toFixed(2)
и восстановить положение курсора.el
во Vue.appel.innerHTML = '<div></div>'; // дополнительный контейнер, его Vue заменит своей DOM
instance = new Vue({
el:'#app>div',
template: '<p>I am {{ who }}!</p>',
data: {who:"a Vue view"}
});