<?php
function getTags($strTag) {
return array_combine(
array_map(
fn($attribute) => array_shift(explode("=", $attribute)),
explode(" ", trim($strTag))
),
explode(" ", trim($strTag))
);
}
function getAttributes($strTag) {
return array_map(
fn($attribute) => array_pop(explode("=", $attribute)),
getTags($strTag)
);
}
preg_match_all('/(?<=\<img).*?(?=>)/', $this->html, $match, PREG_PATTERN_ORDER);
$this->tags = array_map(
fn($strTag) => [
"original" => "<img " . $strTag . ">",
"attributes" => getAttributes($strTag)
],
$match[0]
);
$string = '[480p]\/storage\/458f706a\/hls\/stream_2.m3u8,[720p]\/storage\/458f706a\/hls\/stream_1.m3u8,[1080p]\/storage\/458f706a\/hls\/stream_0.m3u8';
preg_match_all('/([^,]+)/', $string, $matches);
print_r($matches[0]);
Array
(
[0] => [480p]\/storage\/458f706a\/hls\/stream_2.m3u8
[1] => [720p]\/storage\/458f706a\/hls\/stream_1.m3u8
[2] => [1080p]\/storage\/458f706a\/hls\/stream_0.m3u8
)
--userNumber = ((prompt(`Каков результат умножения: ${firstNumber} * ${secondNumber} ?`)));
--if (result == userNumber) {
--console.log(result)
--} else {
++do {
-- userNumber = ((prompt(`Каков результат умножения: ${firstNumber} * ${secondNumber} ?`)));;
++ userNumber = +prompt(`Каков результат умножения: ${firstNumber} * ${secondNumber} ?`);
--}
++} while (result !== userNumber);
++console.log(result)';
Агрегация и делегирование это один и
тот же паттерн или совершенно два разных шаблона?
reduce()
– то можно редьюсить массив аргументов до одного результирующего объекта: const mergeObjects = (...args) => args.reduce((acc, c) => Object.assign(acc, c));
mergeObjects({a: 'A'}, {b: 'B'}, {c: 'C', a: 'AAA'})
// { a: "AAA", b: "B", c: "C" }
const mergeObjects = (...args) => args.reduce((acc, c) => ({...acc, ...c}), {});
apt-mark showmanual
, либо apt list --installed | grep -v 'automatic'
(чтобы исключить пакеты, которые были поставлены как зависимости для других). Но и там будут пакеты, поставленные при установке ОС.bash script.sh
.