(()=>{
function merge(nums1, m, nums2, n) {
nums1 = nums1.slice(0, m).concat(nums2).sort((a, b) => a - b);
}
var nums1 = [46,55,88,0,0,0,0];
merge( nums1, 3, [18,29,80,90], 4);
return JSON.stringify(nums1);
})()
/*
[46,55,88,0,0,0,0] // исходный массив не изменился
*/
oReq.addEventListener("load", reqListener);
reqListener()
XMLHttpRequest
и не виден невооруженным глазом.send()
сразу же явно дергал функцию, которую мы передали как слушателя события. Но это был бы уже не тот XMLHttpRequest
, каким мы его любим. function verify(text) {
const buffer = [];
const valid = '()[]{}';
for (let i = 0, len = text.length; i < len; i++) {
const c = text[i];
const idx = valid.indexOf(c);
if (-1 === idx) continue; // не скобка
if (idx & 1) { // закрывающая (нечет)
if (0 === buffer.length) return false;
if (valid.indexOf(buffer.pop()) + 1 !== idx) return false;
} else { // открывающая
buffer.push(c);
}
}
return buffer.length === 0;
}
(()=>{
const tests = [
["a(b)", true ],
["[{}]", true ],
["[(]", false ],
["}{", false ],
["z([{}-()]{a})", true],
["", true ],
["(((}", false ],
];
return JSON.stringify(
tests.map(t => (verify(t[0]) === t[1] ? 'OK' : 'FAIL' ) + ': ' + t[0])
, null,
2
);
})()
/*
[
"OK: a(b)",
"OK: [{}]",
"OK: [(]",
"OK: }{",
"OK: z([{}-()]{a})",
"OK: ",
"OK: (((}"
]
*/
appendChild()
, упомянутый в ошибке.innerText
это не метод, а свойство..then(function(result) {
const el = document.querySelector('.response');
let html = ''; // здесь соберём html всех блоков из цикла
for(let i = 0, len = result.data.length; i < len; i++){
const data = result.data[i];
html += ` ... <img src="${data.logo}"> ... `;
}
el.innerHTML = html;
})
const token = 'xxxxxx';
var myHeaders = new Headers();
myHeaders.append('x-access-token', token);
var myInit = { method: 'GET',
headers: myHeaders,
mode: 'cors',
cache: 'default' };
var myRequest = new Request('http://api.travelpayouts.com/v2/prices/latest', myInit);
fetch(myRequest)
.then(res => res.json())
.then(data => console.log(data))
const http = require("http");
const token = '321d6a221f8926b5ec41ae89a3b2ae7b';
const url = 'http://api.travelpayouts.com/v2/prices/latest';
http.get(
url,
{
headers: {
'x-access-token': token
}
},
(res) => {
const { statusCode } = res;
const contentType = res.headers['content-type'];
let error;
if (statusCode !== 200) {
error = new Error('Request Failed.\n' +
`Status Code: ${statusCode}`);
} else if (!/^application\/json/.test(contentType)) {
error = new Error('Invalid content-type.\n' +
`Expected application/json but received ${contentType}`);
}
if (error) {
console.error(error.message);
// Consume response data to free up memory
res.resume();
return;
}
res.setEncoding('utf8');
let rawData = '';
res.on('data', (chunk) => { rawData += chunk; });
res.on('end', () => {
try {
console.log("raw data:", rawData);
const parsedData = JSON.parse(rawData);
console.log(parsedData);
} catch (e) {
console.error(e.message);
}
});
}
).on('error', (e) => {
console.error(`Got error: ${e.message}`);
});
var vkApiResponse = {
"response": 1467726682
};
var D = new Date(vkApiResponse.response * 1000);
D.toString() // Tue Jul 05 2016 16:51:22 GMT+0300 (Moscow Standard Time)
prompt()
возвращает String
, который надо привести к числу.var a = +prompt('summa'), i = 0;
for ( ; ++i<5; a *= 1.012) {
console.log(`${i}: ${a}`); // смотрим в консоль
}
// ввёл 200
// получилось:
/*
1: 200
2: 202.4
3: 204.8288
4: 207.28674560000002
*/
a
на 1.012
n
раз. Сразу можно посчитать как 1.012 в степени n. Обратная задача - логарифм. Например, как узнать, сколько раз надо умножить на 1.012 сумму 20, чтобы получить 30:Math.log(30/20) / Math.log(1.012) // 33.991
arr.filter( (num) => num > 0 && num % parseInt(num) === 0 )
// то же, что
arr.filter( function(num) { return num > 0 && num % parseInt(num) === 0 ;} )
%
) на целое значение себя же равен нулю. Т.е. являются квадратами целого. function tillItOpens() {
const D = new Date();
const shopOffsetMin = 5 * 60; // GMT+5
const myOffsetMin = D.getTimezoneOffset();
const diffMin = shopOffsetMin + myOffsetMin;
function futureDate(hours, fixMin) {
const d = new Date();
d.setHours(hours);
d.setMinutes(0 + fixMin);
d.setSeconds(0, 0);
if (d < new Date()) d.setDate(d.getDate() + 1);
return d;
}
const dOpens = futureDate(9, diffMin);
const dCloses = futureDate(21, diffMin);
if (dOpens < dCloses) {
// скоро откроется
const hours = Math.floor((dOpens - D) / 36e5);
const minutes = Math.floor((dOpens - D) / 6e4) - 60 * hours;
return `до открытия ${hours}:${minutes}`
} else {
// сейчас открыто
return "Сейчас открыто!";
// хорошо ещё посмотреть, сколько остаётся до закрытия - успеет ли чел.
// ближайшее закрытие – объект dCloses
}
}
dOpens
– он означает время открытия в текущей таймзоне.