let isFirstClick = true; // флаг первого клика
btn1.onclick = function() { // при клике по кнопке №1
btn3.hidden = true; // скрываем кнопку №3
};
btn2.onclick = function() { // при клике по кнопке №2
if (isFirstClick) {
isFirstClick = false; // убираем флаг
btn3.hidden = false; // показываем кнопку №3
}
};
может есть вариант поэлегантней чем повторять
while (allTextNodes.nextNode()) {
replaceNodeText(allTextNodes.currentNode, text1, replaceValue);
replaceNodeText(allTextNodes.currentNode, text1, ClearText);
}
function replaceNodeText(node, search, replaceText) {
node.nodeValue = node.nodeValue.replace(search, replaceText);
}
FROM tbl SELECT *
который очевидно не сработает.function test() {
const a = [1];
return a[0] += 3; // что вы вернет?
}
a
?// с запятой
array.reduce((a,b,i)=>function(){
const sum = a[i%2] + b; // вычисление
a[i%2] = sum; // присваивание
return a; // возврат массива
}, [0,0]);
// без запятой
array.reduce((a,b,i)=>function(){
const sum = a[i%2] + b; // вычисление
a[i%2] = sum; // присваивание
return sum; // возврат результат суммирования
// и на следующей итерации будет ошибка из-за попытки обратиться к числу как к массиву.
}, [0,0]);
select count(*) from orders where userId=42; -- кол-во заказов
select count(*) from orders where userId=42 and date < "2021-10-05" ; -- кол-во заказов до даты
select * from orders where usetId=42
ORDER BY date DESC -- сортировать по дате в обратном порядке
LIMIT 3; -- три последние записи
$array = ['id' => 5, 'name' => 'root'];
$object = (object) $array;
echo $object->id; // -> 5
class Test {
private $data = [];
public function __construct($arr) {
$this->data = $arr;
}
public function __get($name)
{
return $this->data[$name] ?? 'no data';
}
}
$test = new Test(['id' => 5, 'name' => 'root']);
echo $test->name; // -> 'root'
echo $test->foo; // -> 'no data'
Object.keys(obj).forEach(key => {
if (key.includes('pass')) {
delete obj[key];
}
});