arr.reduce((acc, n) => (
n = n.match(/(\S+) = (.*)/),
n && (acc[n[1]] = n[2]),
acc
), {})
$doc = new DOMDocument();
$doc->loadHTML($html);
$a = $doc->getElementsByTagName('a');
$result = array_map([ $doc, 'saveHTML' ], iterator_to_array($a));
$result = preg_split('/(?<=\/a>)(?=<a)/', $html);
// или
preg_match_all('/<a .*?>.*?<\/a>/', $html, $matches);
$result = $matches[0];
<div>
<p>Text</p>
<ul>
<li>Apple</li>
<li>Banana</li>
</ul>
</div>
И примерно такой код:const tmpl = document.createElement('template');
tmpl.innerHTML = msg; // строка с HTML
const df = tmpl.content; // DocumentFragment
df.children // массив из одного элемента: наружний div
df.children[0].children // массив с двумя эл.: параграфом и списком
df.children[0].children[1].children[1].textContent // "Banana"
.wrapper {
display: grid;
grid-auto-flow: dense;
grid-template-columns: 1fr 1fr;
grid-gap: 10px;
}
.box {
background-color: #444;
color: #fff;
border-radius: 5px;
padding: 20px;
font-size: 150%;
}
.box:nth-child(6n + 1),
.box:nth-child(6n + 6) {
grid-row: span 2;
}
.box:nth-child(6n + 5) {
grid-column: 1;
}
let index = -1;
setInterval(el => {
const show = !el.classList.contains('_active');
index = (index + show) % infoModal.length;
el.innerText = infoModal[index].title;
el.classList.toggle('_active', show);
}, 1000, document.querySelector('.modal__title'));
Если, к примеру, нужно скрывать блок каждый раз через5 сек, а показывать блок через рандомный промежуток времени?
(function updateText(el, i) {
const show = el.classList.toggle('_active');
i = (i + show) % infoModal.length;
el.textContent = infoModal[i].title;
setTimeout(updateText, 1000 + !show * Math.random() * 3000, el, i);
})(document.querySelector('.modal__title'), -1);
const entries = Object.entries(obj); for (const entry of entries) { if (!isObject(entry)) { result = Object.assign(result, Object.fromEntries(entry)); } else return cloneDeep(entry);