$newArr = array_filter($arr, fn($n) => explode('.', $n)[1] !== '08');
for ($i = 0, $j = 0; $i < count($arr); $i++) {
if (explode('.', $arr[$i])[1] === '08') {
$j++;
} else if ($j) {
$arr[$i - $j] = $arr[$i];
}
}
array_splice($arr, -$j, $j);
let trs = document.querySelectorAll('tr'); // получили коллекцию строк
let td = trs[1].querySelectorAll('td')[2]; // получили из 2й по счёту строки, третью по счёту ячейку
console.log(td);
class Menu { // Menu
constructor(name, hod) { // construct
this.name = name;
this.hod = hod;
this.AlertOn = function() {
alert(this.hod);
}
countMenu++;
} // endconstruct
} // endMenu
countMenu = 0;
menu1 = new Menu("Меню 1", "1");
menu2 = new Menu("Меню 2", "2");
menu3 = new Menu("Меню 3", "3");
menu4 = new Menu("Меню 4", "4");
for (j = 1; j <= countMenu; j++) {
const menu = window["menu" + j]; // terrible
const div = document.createElement('button');
div.className = "buttonMenu";
div.innerHTML = menu.name;
div.addEventListener('click', menu.AlertOn.bind(menu));
allbody.append(div);
}
desctructor()
в ECMAScript 6 не предусмотрено.class Menu {
static counter = 0;
constructor(name) {
this.name = name;
++Menu.counter;
}
}
menu1 = new Menu("меню1");
menu2 = new Menu("меню2");
menu3 = new Menu("меню3");
menu4 = new Menu("меню4");
delete menu1;
console.log(Menu.counter); // 4
window
. Тоже не лучший вариант, т.к. мало ли, где в коде содержатся ссылки на созданные объекты. Может, в анонимных функциях, вызванных по таймеру.let count = 0;
for (obj in this) { // в примере this === window
if (this[obj] instanceof Menu) ++count;
}
console.log(count); // 4
s
попадает элемент span
, а не значение.