- 1
- 2
- 3
- 4
- 5
setInterval(() => {
const [x, y] = win.getPosition()
localStorage.setItem('x', x)
localStorage.setItem('y', y)
}, 3)
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
0
setInterval(() => {
const [x, y] = win.getPosition()
localStorage.setItem('x', x)
localStorage.setItem('y', y)
}, 3)
s: https://github.com/JsusDev/JS.VPN-Client/blob/master/app/components/vpn/client/index.html
Охуеть, блядь. Сраная обёртка над однострочным скриптом, написанная на сраном «Электроне», весит сраных 38 мегабайт и каждые три сраных миллисекунды гоняет туда-сюда байты. И это программисты? Это программисты? Говно какое-то, пидоры, блядь. Родина им дала скрипты — пиши, пиши ничего не весящий однострочник! Блядь, не хотим, хотим высирать говно. И даже эта обёртка на «Электроне», единственный смысл в которой — максимальная кроссплатформенность, намертво прибита к бинарникам «OpenVPN» версии 2.4.6. К сраным, блядь, виндовым бинарникам!
Да, у меня бугурт от настолько лютого говна.
−1
d = new Date();
ds = d.getHours() + ":" + (d.getMinutes() / 100).toFixed(2).split(".")[1] + ":" + (d.getSeconds() / 100).toFixed(2).split(".")[1];
// а как бы вы сделали это красивее, в одну строчку (или две) и без сторонних библиотек?
Вывод времени с нулями в минутах и секундах (если они меньше 10): 5:05:00, 11:01:01, 23:03:03
Чтобы в логах (при чтении с моноширинным шрифтом) время имело одинаковую ширину.
// P.S.: к сожалению в JS нет стандартной функции format для даты.
0
// https://dev.to/saigowthamr/how-to-reverse-a-string-in-javascript-3i9c
// In this tutorial, we are going to learn three different ways to reverse a string
// in JavaScript by using the reverse method, reduce method.
// First way
const str = "hello"
str.split('').reverse().join('')
//"olleh"
// We used split method to split the string into an array of individual strings then chain it to reverse method.
// Second way
const str = "hello"
[...str].reduce((prev,next)=>next+prev)
//"olleh"
// First, we spread the string using spread operator and reverse the string using the reduce method
// Third way
function reverseString(str){
const arr = [...str]
let reverse= "";
while(arr.length){
reverse = reverse + arr.pop()
}
return reverse
}
// I mostly like the Second way to reverse a string using reduce method.
// Happy coding...
Это видимо такой вид соревнований, типа как вкрутить лампочку в патрон наиболее упоротым и неочевидным способом. Нахрена это нужно обычному программисту? Может это такой способ ручной обфускации? Тогда понятно
−1
export function toNumber(numeric) {
if (Number(numeric) === 0) { // Функция проверит, переданное её значение на число.
return true
} else if (!Number.isInteger(Number(numeric))) {
return false
} else {
return +numeric
}
}
Функция проверит, переданное её значение на число.
+1
export function doFilters(global, value) {
let filterListGeo, filterListStatus
const timeLife = global.selectedFilters.ttl // Функция настройки параметров фильтра. По каждому полю проходит проверка: либо фильтр отсутсвует, либо его настройки соовтетсвуют пользовательским.
const timeStart = global.selectedFilters.tts
const rate = global.selectedFilters.startRate
const shippingDate = new Date(formatDate(value.dateFrom, 'MM.DD.YYYY'))
const unloadDate = new Date(formatDate(value.dateTo, 'MM.DD.YYYY'))
const shippingDateFrom = new Date(global.dateFromInterval[0])
const shippingDateTo = new Date(global.dateFromInterval[1])
const unloadDateFrom = new Date(global.dateToInterval[0])
const unloadDateTo = new Date(global.dateToInterval[1])
if (global.strainer) {
filterListGeo = global.strainer.geozoneFrom
filterListStatus = global.strainer.status
}
return ((!global.selectedFilters) || (!timeLife) || (!timeLife.from && !timeLife.to) || (value.ttl >= timeLife.from && value.ttl < timeLife.to) || (!timeLife.to && value.ttl > timeLife.from)) &&
((!global.selectedFilters) || (!timeStart) || (!timeStart.from && !timeStart.to) || (value.ttl >= timeStart.from && value.ttl < timeStart.to) || (!timeStart.to && value.ttl > timeStart.from)) &&
((!global.orderId) || (!global.orderId.length || String(value.orderId).substr(0, global.orderId.length) === global.orderId)) &&
((!rate.from && !rate.to) || (value.startRate >= rate.from && value.startRate <= rate.to)) &&
((!filterListGeo) || (filterListGeo.every(item => !item.checked)) || (filterListGeo.find(item => item.name === value.geozoneFrom).checked)) &&
((!filterListStatus) || (filterListStatus.every(item => !item.checked)) || (filterListStatus.find(item => item.name === value.status).checked)) &&
((!global.dateFromInterval.length) || (shippingDate >= shippingDateFrom && shippingDate <= shippingDateTo)) &&
((!global.dateToInterval.length) || (unloadDate >= unloadDateFrom && unloadDate <= unloadDateTo))
}
Функция настройки параметров фильтра. По каждому полю проходит проверка: либо фильтр отсутсвует, либо его настройки соовтетсвуют пользовательским.
0
export function transformDate(time) {
let hours, minutes // Функция преобразует переаднную её дату в формат "00:00:00".
const second = '00'
if (time.getHours() < 10) { hours = '0' + time.getHours() } else { hours = time.getHours() }
if (time.getMinutes() < 10) { minutes = '0' + time.getMinutes() } else { minutes = time.getMinutes() }
return hours + ':' + minutes + ':' + second
}
Функция преобразует переаднную её дату в формат "00:00:00".
−2
function okruglik(num) {
if(isNaN(num)){
summi = summi;
} else {
summi = Math.floor(num);
}
return summi;
}
Притом функция нигде не используется и переменная не объявлена
+1
var btn_checkAll = document.getElementById('checkAll');
if (btn_checkAll) {
btn_checkAll.addEventListener('click', checkAll);
}
var inputTagsArray = [];
function getInputTags() {
inputTagsArray = document.getElementsByTagName('input');
inputTagsArray = Array.prototype.slice.call(inputTagsArray);
}
function getArray(action) {
getInputTags();
var checkedInputTagsArray = [];
inputTagsArray.forEach(function(element) {
if (element.getAttribute('id')) {
if (element.checked) {
checkedInputTagsArray.push(element.getAttribute('id'));
}
}
});
if (!checkedInputTagsArray[0]) {
alert("Не было выбрано ни одного изображения");
return false;
}
else {
if (confirm("Вы уверены что хотите совершить данное действие?")) {
//в пхп есть гет-метод, который удаляет картиночки по ид.
//надо передавать ид, но я неосилятор и не осили аякс, поэтому
//вместо нормального метода, принимающего массивом ид картиночек постом
//я делаю это:
location.href = "/products/" + action + "/?id=" + checkedInputTagsArray.join("_");
}
else {
return false;
}
}
}
function checkAll() {
getInputTags();
inputTagsArray.forEach(function(element){
if (element.getAttribute('id')) {
if (element.checked) {
element.checked = false;
}
else {
element.checked = true;
}
}
});
}
function deleteChecked() {
getArray("imagedelete");
}
function showHideChecked() {
getArray("show-hide");
}
в пхп есть гет-метод, который удаляет картиночки по ид.
надо передавать ид, но я неосилятор и не осили аякс, поэтому
вместо нормального метода, принимающего массивом ид картиночек постом
я делаю это:
+3
[ '\uD83D\uDC14', '\uD83E\uDD5A' ].sort()
Unicode порешал
https://twitter.com/aBagorn/status/1051286652663025664
Оригинал не влез, ибо:
Application was halted by an exception.
Debug-mode is off.
0
//<?php
$is_php = !'0';
if ($is_php) {
echo(PHP_EOL);
perevedi_na_php();
} else {
console.log('//');
perevedi_na_js();
}
function perevedi_na_php() {
echo('Hello, "PHP"!' . PHP_EOL);
}
function perevedi_na_js() {
console.log('Hello, "PHP"!');
}