def get_min_value(materials):
return min(m for n in materials for m in n.values())
def filter_materials(materials, min_value):
return [ n for n in materials if all(m >= min_value for m in n.values()) ]
materials_in_stock = filter_materials(materials_in_stock, get_min_value(required_material))
$namesPartsArrays = [ $firstname, $lastname ];
$namesCount = 5;
$rand = fn($arr) => array_map(fn($n) => $arr[$n], array_rand($arr, $namesCount));
$namesParts = array_map($rand, $namesPartsArrays);
$names = implode(', ', array_map(fn(...$parts) => implode(' ', $parts), ...$namesParts)).'.';
data: () => ({
activeElem: null,
...
}),
<Item
:active="activeElem === elem"
@activate="activeElem = elem"
...
/>
props: {
active: Boolean,
...
},
this.$emit('activate'); // когда надо сделать текущий элемент активным
<div class="row__elements" :class="{ active }">
function render(message) {
const p = document.createElement('p');
p.textContent = message;
windowChatUser1.append(p);
windowChatUser2.append(p.cloneNode(true));
}
function render(message) {
const html = `<p>${message}</p>`;
windowChatUser1.insertAdjacentHTML('beforeend', html);
windowChatUser2.insertAdjacentHTML('beforeend', html);
}
.container {
display: grid;
grid-template-columns: repeat(5, 1fr);
}
function App() {
const [ count, setCount ] = useState(0);
const onChange = e => setCount(Math.max(0, e.target.value | 0));
return (
<div>
<input type="number" value={count} onChange={onChange} />
<div className="container">
{Array.from(Array(count).keys(), n => <div className="item">{n}</div>)}
</div>
</div>
);
}
callbacks: {
open() {
$(window).trigger('resize');
},
},
Удаление перехватывающего обработчика никак не затрагивает не-перехватывающюю версию этого же обработчика, и наоборот.
const mod = (a, b) => ((a % b) + b) % b;
// или
const mod = (a, b) => a - (b * Math.floor(a / b));
console.log([ 12, 367, -54, 789, -567 ].map(n => mod(n, 360)));
const maxStr = arr.length
? arr.reduce((max, n) => +n < +max ? max : n)
: null;
function max(data, key = n => n) {
const getVal = key instanceof Function ? key : n => n[key];
let result = null;
for (const n of data) {
const val = getVal(n);
result = (!result || result[1] < val) ? [ n, val ] : result;
}
return result?.[0];
}
const maxStr = max(arr, Number);
data.flatMap(item => item.events.flatMap(event => event.params.map(param => ({
name: item.name,
event_key: event.event_key,
...param,
}))))