const findSequence = (numbers) => {
const numbersSet = new Set(numbers)
numbers = Array.from(numbersSet).sort((a, b) => a - b)
const maxNumber = numbers[numbers.length - 1]
let result
for (let i = 0; !result && i < numbers.length - 2; i++) {
const num1 = numbers[i]
for (let j = i + 1; j < numbers.length - 2; j++) {
const num2 = numbers[j]
const diff = num2 - num1
let nextNumber = num2 + diff
if (nextNumber > maxNumber) break
const seq = []
while(numbersSet.has(nextNumber)) {
seq.push(nextNumber)
nextNumber += diff
}
if (seq.length) {
result = [num1, num2, ...seq]
break
}
}
}
return result
}
const numbers = [3, 4, 7, 8, 12, 19]
document.write(findSequence(numbers))
у нас есть головной мозг, чтобы запоминать негативный опыт, чтобы в дальнейшем уменьшить или вообще исключить возможность его повторения.
Некоторые особенности языка были восприняты корпоративным сектором, как явные недостатки, из-за чего уже были случаи отказа от него некоторыми компаниями.
const filterByStops = (x, stopsFilter) => {
// Теперь функция фильтрации по числу остановок и верно названа
// и работает как надо и в 10 раз короче =)
if (x === undefined) return
const arr = Array.from(x);
if (stopsFilter.all) return arr
// Получаем массив в виде [true, false, false, true], где для каждого индекса
// указано отбираем ли его
const stopsOptions = Array.from(['noStop', 'oneStop', 'twoStop', 'threeStop']).map(
option => Boolean(stopsFilter[option])
)
// Фильтруем элементы так чтобы у каждого сегмента значение остановок было true
return arr.filter(item =>
item.segments.every(segment => stopsOptions[segment.stops.length])
)
}
fetch(getSearchIdUrl).then(response => {
response.json().then(data =>
fetch(tickets + `${data.searchId}`).then(response => {
if (response.status !== 200) {
setRequestStatus(true);
return;
}
response.json().then(data => setTicketList(data));
})
);
});
fetch(getSearchIdUrl)
.then(response => response.json())
.then(data => fetch(tickets + `${data.searchId}`))
.then(response => {
if (response.status !== 200) {
setRequestStatus(true);
} else {
return response.json()
}
})
.then(data => setTicketList(data))
Лично я бы не стал без необходимости забивать себе голову тем, что не нужно.
Вообще непонятно, что значит "учить"... Учить надо непосредственно языки, а всякого рода дополнительные библиотеки и фреймворки - ну можно почитать, чтобы иметь представление что это и зачем это, все остальное придет с опытом.