const result = arr.reduce(
(acc, cur) => {
if (cur.video !== undefined) {
acc.push({ src_video: cur.video });
}
acc.push(cur);
return acc;
},
[],
)
// Array(5) [ {…}, {…}, {…}, {…}, {…} ]
// 0: Object { src_video: "some-path-1" }
// 1: Object { src: "some-path-1", video: "some-path-1" }
// 2: Object { src_video: "some-path-2" }
// 3: Object { src: "some-path-2", video: "some-path-2" }
// 4: Object { src: "some-path", video: null }
display: none
, то toggle
просто убирает свойство display
и оно становится дефолтным для a
, то есть inline
.div
и переключать его;display
.i
не стоит использовать для иконок, семантически он предназначен для выделения фрагмента текста, например технического термина или идиоматическтого выражения;'display'
в первом параметре toggle
не имеет смысла, там может быть длительность переключения, объект с параметрами или логическое значение, но не произвольная строка. const a1 = [{ "id": "1" }, { "id": "2" }, { "id": "3" }];
Здесь создаётся массив, в котором три ссылки на объекты.let a3 = [...a1];
let a4 = a1.slice();
const a2 = a1.map(i => {
i["name"] = "Name" + i["id"];
return i;
});
Здесь в объекты по ссылкам добавляется новое поле и как результат каллбэка возвращается ссылка на объект. Соответственно в a2 те же самые ссылки.const a2 = a1.map((o) => ({ ...o, name: `Name${o['id']}` }));
$x = '-- \' --';
print $x . "\n"; // -- ' --
$y = '-- \\\' --';
print $y . "\n"; // -- \' --
To specify a literal single quote, escape it with a backslash (\). To specify a literal backslash, double it (\\).https://www.php.net/manual/en/language.types.strin...
translateX(-500%)
?toggle('show', entry.isIntersecting)
приведёт к тому, что когда блок полностью окажется на экране, он тут же будет убран с экрана анимацией, сгенерируется новое событие по исчезновению блока, блок снова переместится на экран, сгенерируется событие, блок будет убран с экрана и так до бесконечности.