function findSequence(arr) {
let maxSequence = [];
let currentSequence = [];
for (let i = 1; i < arr.length - 1; i++) {
const currentValue = parseInt(arr[i].value, 10);
const prevValue = parseInt(arr[i - 1].value, 10);
const nextValue = parseInt(arr[i + 1].value, 10);
if (prevValue > currentValue && currentValue < nextValue) {
currentSequence = [arr[i]];
} else if (currentSequence.length > 0 && currentValue < nextValue) {
currentSequence.push(arr[i]);
} else {
currentSequence = [];
}
if (currentSequence.length > maxSequence.length) {
maxSequence = currentSequence.slice();
}
}
if (currentSequence.length > 0 && parseInt(arr[arr.length - 1].value, 10) > parseInt(arr[arr.length - 2].value, 10)) {
currentSequence.push(arr[arr.length - 1]);
if (currentSequence.length > maxSequence.length) {
maxSequence = currentSequence.slice();
}
}
return maxSequence;
}
let arr1 = [{ value: '2' }, { value: '4' }, { value: '11' }, { value: '7' }, { value: '8' }, { value: '9' }];
let arr2 = [{ value: '5' }, { value: '20' }, { value: '5' }, { value: '7' }, { value: '9' }, { value: '11' }];
console.log(findSequence(arr1)); // (7, 8, 9)
console.log(findSequence(arr2)); // (5, 7, 9, 11)
var counter = localStorage.counter || 0; // загружаем
counter++;
if (counter >= 10) counter = 0;
localStorage.counter = counter; // сохраняем
console.log(counter == 9 ? "Да" : "Нет");
*
, будет показан курсивом. Поэтому вопросы/ответы вида "вычисление 2*2*2" будут выглядеть как "вычисление 222".*
или ~
, который автор (вы или нейросеть) печатал не как служебный. ^(19[0-9]{2}|20[0-9]{2}|2100)$
let regex = /^(19[0-9]{2}|20[0-9]{2}|2100)$/;
let test = regex.test("2000"); // возвращает true
let test2 = regex.test("1899"); // возвращает false
^(199[0-9]|20[0-9]{2}|2100)$
var data = {
"ID": "414",
"ELEMENT": {
"5333": {
"ID": "5333",
"sort": 300,
},
"5334": {
"ID": "5334",
"sort": 500,
},
"5335": {
"ID": "5335",
"sort": 100,
}
}
}
// Преобразование объекта в массив
var elementsArray = Object.keys(data.ELEMENT).map(function(key) {
return data.ELEMENT[key];
});
// Сортировка массива по sort
elementsArray.sort(function(a, b) {
return b.sort - a.sort;
});
// Выводим массив в консоль
console.log(elementsArray);
\b(\d[\d\w.-]*)
\b(\d[^ ]*)
preg_match('/\b(\d[^ ]*)/', $product->name, $matches);
pcntl_fork()
, ОС создает копию текущего процесса. Этот новый процесс наследует от родительского процесса все открытые файлы и соединения. Это включает в себя все файлы, открытые с помощью popen()
, fopen()
, сокеты, соединения с базой данных и т. д.popen()
или другую функцию, которая создает новый процесс или открывает новое соединение, в дочернем процессе после вызова pcntl_fork()
, ты должен убедиться, что родительский процесс не закрывает этот файл или соединение до тех пор, пока дочерний процесс не закончит его использование.popen()
обычно буферизуют свой вывод, и если ты не очистишь буфер перед тем, как завершить процесс, ты можешь потерять часть вывода. Ты можешь использовать функции вроде fflush()
для очистки буфера перед завершением процесса. import re
data = """
1 ) София Захарова : 322 221 929 монет
2 ) Диана Зайцева : 123 543 монеты
3 ) Семен Соколов : 199 монет
4 ) Вадим Новиков : 18 монет
5 ) Игорь Валеев : 5 монет
"""
# Регулярное выражение для поиска чисел после ":"
pattern = r":\s*([\d\s]+)"
# Поиск всех совпадений
matches = re.findall(pattern, data)
# Преобразование результатов в список чисел
numbers = [int(match.replace(" ", "")) for match in matches]
print(numbers)
{
"manifest_version": 3,
"name": "My Extension",
"version": "1.0",
"permissions": [
"activeTab", "scripting"
],
"action": {
"default_popup": "popup.html"
},
"background": {
"service_worker": "background.js"
}
}
document.getElementById("myButton").addEventListener("click", myFunction);
function myFunction(){
chrome.runtime.sendMessage({command: "runCode"});
}
chrome.runtime.onMessage.addListener((message, sender, sendResponse) => {
if (message.command === "runCode") {
chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
chrome.scripting.executeScript({
target: {tabId: tabs[0].id},
function: functionToInject
});
});
}
});
function functionToInject() {
document.querySelector("#APjFqb").value="123";
}