const getLastDeepestElement = function(el) {
return this(el, 0)[0];
}.bind(function get(el, level) {
return [...el.children].reduce((p, c) => (
c = get(c, -~level),
p[1] > c[1] ? p : c
), [ el, level ]);
});
function getLastDeepestElement(el) {
let result = [ el, 0 ];
for (const stack = [ result ]; stack.length;) {
const n = stack.pop();
result = n[1] > result[1] ? n : result;
stack.push(...Array.from(n[0].children, m => [ m, n[1] + 1 ]));
}
return result[0];
}
const getDeepestLastElement = el =>
el.lastElementChild
? getDeepestLastElement(el.lastElementChild)
: el;
const getDeepestLastElement = el => Array
.from(el.querySelectorAll('*'))
.pop() || el;
// или
function getDeepestLastElement(el) {
for (let c; (c = el.children).length; el = c[~-c.length]) ;
return el;
}
историю звонков, смс, писем, соц. сети и мессенджеры
приложение просто смотрит, когда человек проявляет активность
User-agent: *
Disallow: /
легальные источники данных - историю звонков, смс, писем, соц. сети и мессенджеры
То есть по сути приложение просто смотрит, когда человек проявляет активность
Человек не давал явное согласие отслеживать его время сна, но и не запрещал.
cart = [
{id: 11},
{id: 23}
//и т.д
];
cart.splice(0, 1);
попытался решить все через рекурсию
const createTree = (data, idKey, parentKey, parentId) =>
data.reduce((acc, n) => (
parentId === n[parentKey] && acc.push({
...n,
children: createTree(data, idKey, parentKey, n[idKey]),
}),
acc
), []);
const tree = createTree(data, 'id', 'parentId', null);
function createTree(data, idKey, parentKey) {
const tree = Object.fromEntries(data.map(n => [ n[idKey], { ...n, children: [] } ]));
return Object
.values(tree)
.filter(n => !(tree[n[parentKey]] && tree[n[parentKey]].children.push(n)));
}
const tree = createTree(data, 'id', 'parentId');
This command encodes a video with good quality, using slower preset to achieve better compression:https://trac.ffmpeg.org/wiki/Encode/H.264
ffmpeg -i input.avi -c:v libx264 -preset slow -crf 22 -c:a copy output.mkv
mp4box -add input.mp4:fps=1 -new output.mp4
console.log(`${user2}`); // Выведет 20 10, т.к. будет вызов user2.toString()
console.log(+user1); // Выведет 20 10 т.к. будет вызов user1.valueOf();
console.log(+user2); // Вывезет 20 10, у user2 нет valueOf, будет произведен вызов функции toString, результат которой будет преобразован в число.