возраст 6 бит, количество курсов 3 бита
0 пол
1 семейное положение (женат / не женат)
2–7 возраст (6 бит запишут значения 0..63 точно хватит?)
8–10 количество курсов
11 присутствие
const encode = (sex, family, age, classes, presence) =>
(1 & sex) << 0 |
(1 & family) << 1 |
(63 & age) << 2 |
(7 & classes) << 8 |
(1 & presence) << 11
;
const decode = n => ({
sex : n >> 0 & 1,
family : n >> 1 & 1,
age : n >> 2 & 63,
classes : n >> 8 & 7,
presence : n >> 11 & 1,
});
неженатых женщин, с возрастом от 25 до 30 включительно, без курсов и с присутствием.
const mask = encode(1, 0, 25, 0, 1);
data.filter(n => n === mask); // нужно полное равенство маски и числа, как я понял?
data.filter(n => (n & 0xFFF) === mask);
const masks = [];
for(let i=25; i<=30; i++) masks.push( encode(1, 0, i, 0, 1));
data.filter(n => masks.includes(n & 0xFFF));
В качестве логина может выступать либо номер привязанного телефона (в международном формате, без плюса в начале), либо почтовый ящик.
Что же касается пароля:
1. Если Ваша страница привязана к актуальному номеру телефона, можно изменить пароль здесь: vk.com/restore.
2. Если Ваша страница не привязана к номеру телефона или номер недоступен, придётся обратиться в службу восстановления доступа: vk.com/restore?act=return_page.
let i = 0; // i = 0
while (i++ < 5) { // i = 0 сравнивают с 5. Меньше. Ок.
// После этого i стало = 1
alert( i ); // вывели 1
}
// следующая итерация
while (i++ < 5) { // i = 1 сравнивают с 5. Меньше. Ок.
// После этого i стало = 2
alert( i ); // вывели 2
// следующие итерации
// i = 2 -> 3
// i = 3 -> 4
// i = 4 -> 5
// следующая итерация
while (i++ < 5) { // i = 5 сравнивают с 5. Не меньше. Равно. Не ок!
// вышли из цикла
optimization: {
minimizer: [
new UglifyJsPlugin({
sourceMap: true
})
]
},
const customObj = (({ second, third }) => ({ second, third }))(obj);
const obj = {
first: 123,
second: 154,
third: 654,
fourth: 993
};
const customObj = (({ second, third }) => ({ second, third }))(obj);
customObj // { second: 154, third: 654 }
js я вообще не знаю. просто решил попробовать изучать по мере выполнения задачЭто не та задача, с которой стоит начинать изучение JS.
function declOfNum(number, titles) {
cases = [2, 0, 1, 1, 1, 2];
return titles[ (number%100>4 && number%100<20)? 2 : cases[(number%10<5)?number%10:5] ];
}
// использование: в массиве передавать формы для 1, 4 и 5 «штук»
declOfNum(count, ['найдена', 'найдено', 'найдены']);
srcconst total = 10;
const totalWords = ['упражнения', 'упражнений', 'упражнений'];
const newTotal = 'Составить тренировку из ' + total + ' ' + declOfNum(total, totalWords);
execute()
так-себе, потому, что там много ограничений, в т.ч. на простой цикл. Чем больше стоп-слов, тем скорее код упрётся в лимит итераций, перебирая их. Поэтому стоп-слова лучше проверять на стороне сервера в PHP – проще. И не придётся гонять туда весь словарь нехорошестей. Проще же принять оттуда недлинное название.age_limits
– возрастное ограничение.1 — нет;
2 — 16+;
3 — 18+.
3
lib/defaults.js
axios.defaults.headers.common['Authorization'] = AUTH_TOKEN;
axios.defaults.headers.common['Authorization'] = NEW_TOKEN;
axios.get('https://google.com').then(r => console.log(r));
Array.of()
позволяет привязать контекст, иной, нежели Array
.function Stack(){}
Stack.prototype = Object.create(Array.prototype);
Stack.prototype.last = function(){return this[this.length-1]}; // вернуть последний элемент
const testArr = Array.of.call(Stack, 1, 2, "три!");
.last()
console.log(testArr.last()); // "три!"
0.3 - 0.1 // 0.19999999999999998
x = new Decimal(0.3)
x.minus(0.1) // '0.2'
$('#datePicker').datepicker();
$('#datePicker').datepicker({
dateFormat: "dd.mm.yyyy"
});
const hasCommon = (a, b) => undefined !== a.find(v => b.includes(v))
const tests = [
[[1,11,111], [2,3], false],
[[1,11,111,4,5], [2,3,4], true],
[[2,3,4], [1,11,111,4,5], true],
[[1,11,111,'A',{a:'aaa'}], [2,3,'a',{}], false],
[[1,11,111,undefined], [2,3,undefined], false],
[[1,11,111,2,undefined], [2,3,undefined], true],
];
tests.forEach(t => console.log(t[2] === hasCommon(...t)?'OK':'FAIL', JSON.stringify(t)))