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(...)
надо сохранить, чтобы иметь возможность отменить. toFixed(2)
и восстановить положение курсора.function fullWidth(el) {
const style = window.getComputedStyle(el);
return 'width,margin-left,margin-right,padding-left,padding-right'
.split(',')
.reduce((p,c) => p + parseFloat(style[c]), 0)
;
}
var gruz, prolet;
if( gruz && prolet) {
price = gruz * 2 + prolet * 3;
// записать полученное значение цены в нужном месте
} else {
// сбросить значение цены, т.к. в таком состоянии нечего считать
}
//document.getElementById(btn).onclick = function(){
document.getElementById("btn").onclick = function(){
var login = document.getElementById('login').value;
var password = document.getElementById('password').value;
// if (login.value == 'admin') && (password.value == '12345') alert ('Добро пожаловать!');
if (login == 'admin' && password == '12345') alert ('Добро пожаловать!');
else alert ('Вход запрещен!');
}
input.value = parseFloat(e.target.value).toFixed(2);
const pos = e.target.selectionStart; // запомнить положение курсора
// magic
e.target.selectionStart = e.target.selectionEnd = pos; // восстановить
const pos = e.target.selectionStart;
let v = parseFloat(e.target.value);
if( isNaN(v)) v = 0;
e.target.value = v.toFixed(2)
e.target.selectionStart = e.target.selectionEnd = pos;
185
, записанное в 16-ричной системе как 0xB9
. e(f)
, ожидающая целочисленный параметр f.push()
, который вставит в конец массива значение. К свойствам и методам объекта можно обращаться и через точку myArray.push()
и в квадратных скобках передав строку с названием свойства или метода: myArray['push']()
shift()
– записанным так же в виде строки в квадратных скобках.e()
с числом 185, увеличенным на 1, т.е. 186. В цикле это число сначала уменьшается на 1, затем оценивается, не стало ли оно равным нулю. Если ещё не стало, то выполняется тело цикла. Т.е. тело цикла выполнится 185 раз: для 185, 184, 183, ... 2 и 1.boundschange
– Событие изменения области просмотра карты (в результате изменения центра или уровня масштабирования).actionend
– Окончание плавного движения карты.