function shortPathWithDistances(graph, start, end) {
const distances = {};
const visited = new Set();
const path = {};
const edgeWeights = {}; // Новый объект для хранения весов ребер
for (const key in graph) {
if (key !== start) {
distances[key] = Infinity;
} else {
distances[start] = 0;
}
}
while (!visited.has(end)) {
let lowestDistance = Infinity;
let node = null;
for (const key in distances) {
if (lowestDistance > distances[key] && !visited.has(key)) {
lowestDistance = distances[key];
node = key;
}
}
const neighbors = graph[node];
for (const key in neighbors) {
const newDistance = distances[node] + neighbors[key];
if (newDistance < distances[key]) {
distances[key] = newDistance;
path[key] = node;
edgeWeights[key] = neighbors[key]; // Сохраняем вес ребра
}
}
visited.add(node);
}
const shortPath = [];
let current = end;
while (current !== start) {
const currentWithDistance = { node: current, edgeWeight: edgeWeights[current] };
shortPath.unshift(currentWithDistance);
current = path[current];
}
shortPath.unshift({ node: start, edgeWeight: 0 });
return shortPath;
}
где свойства firstName, lastName можно читать и менять.
get firstName() {
return this._firstName;
}
npx i create-react-app
npx create-react-app my-app
// выберите элемент, который вы хотите отслеживать
const targetNode = document.querySelector('.wpcf7-response-output');
let successText;
// создайте экземпляр MutationObserver
const observer = new MutationObserver(function(mutationsList) {
for(let mutation of mutationsList) {
if (mutation.type === 'childList') {
// если тип мутации является childList (изменение дочерних элементов), то выполните действия
successText = mutation.target.textContent;
console.log(successText, 'in Observer');
}
}
});
// настройте параметры наблюдения
const config = { attributes: true, childList: true, subtree: true };
// начните отслеживать элемент
observer.observe(targetNode, config);
const submitBtns = document.querySelector('button');
submitBtns.addEventListener('click', function() {
// изменяем контент через 3 сек после клика
setTimeout(function() {
document.querySelector('.wpcf7-response-output').textContent = 'New content';
}, 3000);
});
npm install
(файл package.json должен быть в этой же папке), либо устанавливая каждый нужный пакет по отдельности. На ютубе полно роликов const app = express()
app.enable('view cache')
app.set('view cache', false)
process.env.NODE_ENV = 'development'
elem.onclick
это свойство того HTML-элемента, который поступает аргументом в конструктор. И этому свойству присваивается функция onClick, которая всегда будет иметь контекстом этот элемент, независимо от того как она будет вызвана. Делается это для того, чтобы предотвратить потерю контекста при определенных манипуляциях. Например, если присвоить метод класса другой переменной и вызвать метод из этой переменной - будет потеря контекста (если не забиндить контекст как в случае с onClick). И кстати, перебиндить контекст второй раз нельзя. $.post("/index", {
name: "ТЕСТ",
designation: "FN_TAST",
}, function( data ) { // передаем и загружаем данные с сервера с помощью HTTP запроса методом POST
$( "div" ).html( data ); // вставляем в элемент <div> данные, полученные от сервера
});