console.log(getRandomVariant([
{chance: 0.4, value: 'Текст1'},
{chance: 0.2, value: 'Текст2'},
{chance: 0.15, value: 'Текст3'},
{chance: 0.25, value: 'Текст4'},
]));
function getRandomVariant(variants) {
const sortedVariants = getRandomVariant.cache.get(variants) ?? getRandomVariant.cache
.set(variants, variants.slice().sort((a, b) => b.chance - a.chance))
.get(variants);
let rand = Math.random();
for (const {chance, value} of sortedVariants) {
if (chance > rand) return value;
rand -= chance;
}
}
getRandomVariant.cache = new WeakMap();
правильно ли я понимаю, что при установлении например ширины 50% у дочернего, это будет зависеть от ширины родителя?правильно, проценты считаются от родителя
если у родителя установлено 50% , то грубо говоря у дочернего получится 25% от всей "страницы"?если родителем родителя будет body, то да
если например у родителя 80px то у дочернего будет от этих 80 отниматься?да
и с vw/hw не понятноvw и vh - это проценты от ширины вьюпорта и от высоты вьюпорта соответственно, расшифровывается как ViewportWidth и ViewportHeight
SELECT
c.id AS id,
c.name AS name,
phone.phone AS phone,
email.email AS email
FROM (SELECT id, name, phone, email FROM contacts LIMIT 6) AS c
LEFT JOIN phone
ON c.phone = phone.phone_id
LEFT JOIN email
ON c.email = email.email_id
hostname -I
ip addr
$wslIP = wsl -- hostname -I
$wslIP = $wslIP.Split(" ")[0]
OpenWith "http://${wslIP}:5000/"
import { FC, memo } from "react";
interface IAppProps {
title: string;
}
interface IStatic<T> {
someStaticString: string;
someStaticObj: T;
}
const someObj = {
SOME_KEY: "SOME_VALUE"
};
const App: FC<IAppProps> & IStatic<typeof someObj> = memo((props) => {
const { title } = props;
return <>{title}</>;
});
App.someStaticString = "someStaticString";
App.someStaticObj = someObj;
export default App;
const averages = Array.from(
arr
.flatMap(v => v.properties.groups)
.reduce((acc, {id, 'well-being': value}) => {
const [count, total] = acc.get(id) ?? [0, 0];
acc.set(id, [count + 1, total + value]);
return acc;
}, new Map())
.entries(),
([id, [count, total]]) => ({id, average: total / count}),
);
console.log(averages);
macro_rules! low_high_wait {
(low) => {
led.set_low().unwrap();
};
(high) => {
led.set_high().unwrap();
};
(wait) => {
block!(timer.wait()).unwrap();
};
(low, $($rest:tt),+) => {
low_high_wait!(low);
low_high_wait!($($rest),+);
};
(high, $($rest:tt),+) => {
low_high_wait!(high);
low_high_wait!($($rest),+);
};
(wait, $($rest:tt),+) => {
low_high_wait!(wait);
low_high_wait!($($rest),+);
};
}
for _ in 0..24 {
low_high_wait!(wait, high, low, low, wait);
}
for _ in 0..24 {
low_high_wait!(wait, high, wait, low);
}
for _ in 0..24 {
low_high_wait!(wait, high, low, low, wait);
}
for _ in 0..24 {
low_high_wait!(wait, high, wait, low);
}
enum UserActionTypes { FETCH_USERS = "FETCH_USERS", FETCH_USERS_SUCCESS = "FETCH_USERS", FETCH_USERS_ERROR = "FETCH_USERS", }
enum UserActionTypes {
FETCH_USERS = 'FETCH_USERS',
FETCH_USERS_SUCCESS = 'FETCH_USERS_SUCCESS',
FETCH_USERS_ERROR = 'FETCH_USERS_ERROR',
}