var _cached = {}
function G(n, callback) {
// сразу всё будет кешировать, чтобы не париться с повторными проверками
if (_cached[n])
return _cached[n]
GET(n, function (html) {
_cached[n] = html
callback(html)
})
}
function searchUp(id, n, found) {
// удваиваем номер страницы, пока не проскочим нужный id
G(n, function(html) {
var res = S(html, id);
if (res == 0)
found(n, html)
else if (res > 0)
searchUp(id, 2 * n, found)
else
searchBinary(id, n/2, n, found)
})
}
function searchBinary(id, n1, n2, found) {
// обычный бинарный поиск
n = ((n1 + n2)/2)|0;
G(n, function (html) {
var res = S(html, id);
if (res == 0)
found(n, html)
else if (res > 0)
searchBinary(id, n, n2, found)
else
searchBinary(id, n1, n, found)
})
}
searchUp(123, 1, function(n, html) {
// Ищем 123 коммент, начинаем с 1 страницы
console.log(n, html)
})
let images = document.body.querySelectorAll(`img`);
document.addEventListener(`keydown`, event => {
let index = +String.fromCharCode(event.which) - 1;
if (index < 5) {
images[index].style.display = `block`;
}
}, false);
короткий и длинный рукав => 2
6 элементов рубашки, 3 варианта каждого элемента => 3^6
3 буквы латинского алфавита => 26^3
итого 2 * 3^6 * 26^3
// перенести вывод 'ha' в саму функцию
function laugh(num) {
for (var i = 0; i < num; i++ ) {
console.log('ha')
}
}
laugh(3)
// ------------------------------
// аккумулировать результат в переменной
function laugh(num) {
var result = ''
for (var i = 0; i < num; i++ ) {
result += 'ha'
}
return result
}
console.log(laugh(3))
// ------------------------------
// то-же самое, но возвращается массив
// можно так-же сделать с объектом
function laugh(num) {
var result = []
for (var i = 0; i < num; i++ ) {
result.push('ha')
}
return result
}
console.log(laugh(3))
// ------------------------------
// и даже вынести аккумулирующую переменную за пределы функции
var haha = ''
function laugh(num) {
for (var i = 0; i < num; i++ ) {
haha += 'ha'
}
}
laugh(3)
console.log(haha)
function makeLine(length) {
var res = "";
for(var i = 1; i <= length; i++){
var line = "";
for(var j = 0; j < i; j++){
line += "* "
}
res += line + "\n"
}
return res
}
php://input
возвращает все необработанные данные после HTTP-заголовков запроса, независимо от типа контента.POST /page.php HTTP/1.1
key1=value1&key2=value2&key3=value3
POST /page.php HTTP/1.1
{"key1":"value1","key2":"value2","key3":"value3"}
application/json
(или, по крайней мере, ни один из вышеперечисленных), так что $_POST -wrapper из PHP не знает, как с этим справиться (пока).file_get_contents('php://input')
(если он не закодирован в формате multipart/form-data).foreach ( $items as $item ) {
echo <<<HTML
<tr>
<td><span>{$item->number}</span></td>
<td><span>{$item->name}</span></td>
<td><a href="{$item->link}" target="_blank"><span>Открыть</span></a></td>
</tr>
HTML;
}