FooSearchComponent
, в который через props из родителя передаём реактивное свойство foo
:Vue.component(
"FooSearchComponent",
{
props: ['foo'],
template: '<div>
<a
href="#"
@click="searchFoo(foo)"
>
{{ foo }}
</a>
</div>',
methods: {
searchFoo: function(search) {
console.log("searchFoo:", search);
},
}
}
);
searchFoo()
в который параметром передаётся свойство (реактивное, извне) foo
f(1, 1) = 100
f(1, 95) = 1.05
f = ?
x - x1 y - y1
------- = -------
x2 - x1 y2 - y1
98.95 * x + 94 * y = 9498.95
// ...
$('input').each(function (index) {
$(this).val(decode[index]);
});
0, 1, 2, ...
И если разметка документа не менялась, можно надеяться, что порядок найдённых input'ов будет тот же, что и при сохранении значений. Способ не гарантирует попадание значения в нужный input, но в простом случае упражнения сработает.id
и сохранять их вместе со значениями. При восстановлении обращаться к элементам по id
. lodash
пишут в документации Sails:Async (async
) and Lodash (_
)
Sails also exposes an instance of lodash as_
, and an instance of async asasync
. These commonly-used utilities are provided by default so that you don't have to npm install them in every new project. Like any of the other globals in sails, they can be disabled.
globals.js
предназначен только для отключения некоторых глобалов-по-умолчанию:// config/globals.js
module.exports.globals = {
_: false,
async: false,
models: false,
services: false
};
_: require('lodash')
воспринимается, видимо, так же, как и _: true
– т.е. просто не-запрещает эту глобальную переменную.let one = ['one', 'two', 'three', 'four', 'five'];
let two = ['a', 'b', 'five', 'c', 'one'];
const [long, short] = one.length > two.length ? [one,two] : [two,one];
short.sort();
const shortLength = short.length;
const binSearch = needle => {
let start = 0, finish = shortLength - 1;
while (start <= finish) {
const center = Math.floor((start + finish) / 2);
if (short[center] < needle) start = center + 1;
else if (short[center] > needle) finish = center - 1;
else return true;
}
return false;
}
const result = [];
for (let i = 0, length = long.length; i < length; i++)
if (binSearch(long[i])) result.push(long[i]);
result // ["five","one"]
ffmpeg -i left.avi -i right.avi -filter_complex "
nullsrc=size=200x100 [background];
[0:v] setpts=PTS-STARTPTS, scale=100x100 [left];
[1:v] setpts=PTS-STARTPTS, scale=100x100 [right];
[background][left] overlay=shortest=1 [background+left];
[background+left][right] overlay=shortest=1:x=100 [left+right]
" output.mp4
ffmpeg \
-i fon.jpg \
-i vertvideo.mp4 \
-filter_complex " \
[0:v] setpts=PTS-STARTPTS, scale=1280x720 [fon]; \
[1:v] setpts=PTS-STARTPTS, scale=-2x720 [video]; \
[fon][video] overlay=x=(W-w)/2 \
" \
-y -hide_banner \
result.mp4
(1, 2)
— должно быть >=2
[(-4, -1), (-2, 2)]
[(3, 2), (4, 0)]
возраст 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);