ctx = canvas.getContext('2d');
setInterval(function draw_line() {
// дано:
// x, y - координаты курсора мышки
// size - длина линии в пикселях
// координаты начала линии
const cx = document.documentElement.clientWidth / 2;
const cy = document.documentElement.clientHeight / 2;
// дельта X и Y (разница между коордами мышки и центром
const dx = x-cx;
const dy = y-cy;
// расстояние от начала линии до мышки
const dist = Math.hypot(dx, dy);
// на сколько надо умножить Дельты, чтобы получить линию заданной длины
const multiplier = size/dist;
// высчитываем координаты конца линии
const nx = cx + dx * multiplier;
const ny = cy + dy * multiplier;
// рисуем линию
ctx.clearRect(0, 0, canvas.width, canvas.height);
ctx.beginPath();
ctx.strokeStyle = "blue";
ctx.moveTo(cx, cy);
ctx.lineTo(nx, ny);
ctx.lineWidth = "2";
ctx.stroke();
}, 1);
<body>
<input type="text">
<script>
let inp = document.querySelector('input');
inp.oninput = function(e) {
const val = inp.value.replace(/[^\d\.]/g, '');
const num = parseFloat(val);
const str = (num!==num?'0':num.toString())+(e.data=='.'?'.':'');
inp.value = str + ' рублей';
if(inp.selectionStart>str.length){
inp.focus();
inp.selectionStart=str.length;
inp.selectionEnd=str.length;
}
};
</script>
</body>
let arr = [
[
{ name: 'Apple', total: '5', id: '1'},
{ name: 'Banana', total: '11', id: '22'},
],
[
{ name: 'Apple', total: '1', id: '1'},
{ name: 'Banana', total: '15', id: '22'},
],
[
{ name: 'Apple', total: '5', id: '1'},
{ name: 'Banana', total: '10', id: '22'},
],
]
let result = Object.values(arr.flat().reduce((acc, item)=>{
if(!acc[item.name]){
acc[item.name] = {...item};
}else{
acc[item.name].total = `${+acc[item.name].total + +item.total}`;
}
return acc;
},{}));
console.log(result)
if (i % j !== 0){ //тут
b+=1
}
i=6
for (let j = 2; j < i; j++) {
if (i % j !== 0){
b+=1
}
}
j = 2
условие не сработает (и это правильно)j = 3
условие не сработает (и это правильно)j = 4
условие сработает (и это НЕ правильно) j = 5
условие сработает (и это НЕ правильно) for (let j = 2; j <= i/2; j++){
Ошибка: (node:25288) UnhandledPromiseRejectionWarning: TypeError: db.get is not a function
let db = require('sqlite') // для примера использую простой в использовании пакет БД "quick.db"
quick.db
а подключаете sqlite
db.get()
и db.set()
TypeError: db.get is not a function
моментально направляли ваши мысли в нужное руслоredis client.quit
redis client.end
filter(
arr, // первый аргумент - array (объект(не массив) с фильтруемыми вложенными объектами)
a => a.name == "Adam" // второй аргумент - test (функция)
)
function filter(array, test) { ... }
const test = (a) => {
return a.name == "Adam"
}
function test(a){
return a.name == "Adam" // стравнивает a.name со строкой "Adam", возвращаетекгу true равны и false если не равны
}
if (test(element)) { // проверяем равен ли name элемента строке "Adam"
result.push(element); // если равен, то добавляем в результирующий массив
}
moment.locale('ru');
// далее везде все что качается рабты момента будет по русски
let month = moment().format('ddd MMMM DD YYYY'); // дата на русском
<head>
...
<meta property="og:type" content="website" />
<meta property="og:url" content="https://www.detmir.ru" />
<meta property="og:title"
content="Интернет магазин детских товаров и игрушек в Москве, игрушки и товары для детей в интернет магазине Детский Мир" />
<meta property="og:description"
content="Интернет-магазин «Детский Мир» предлагает купить товары и игрушки для детей по выгодной цене. В нашем каталоге Вы можете выбрать и заказать детские товары и игрушки с доставкой по Москве, Санкт-Петербургу, Новосибирску и другим городам России." />
<meta property="og:image" content="https://go.detmir.st/img/96f25dcdeb082e67509489b08990ae0a.png" />
<meta name="google-site-verification" content="H12mlaR4ux4mUKnx_ECZzODISfpLd6wlgAZVM5XZSYU" />
<link rel="image_src" href="https://go.detmir.st/img/96f25dcdeb082e67509489b08990ae0a.png" />
...
</head>