Разраб на колёсах – Telegram
Разраб на колёсах
196 subscribers
288 photos
50 videos
76 links
Цифровой кочевник, живу и работаю в автодоме, а этот канал — мой бортовой журнал🚌
Download Telegram
Forwarded from ТочкаGPT
В предоставленном коде, вы создаете массив `ct`, содержащий элементы DOM, полученные с помощью `document.getElementById(item)`. Затем вы используете `filterValue` для определения значения фильтра.

Далее, у вас есть функция `hideTabContent()`, которая скрывает все элементы `ct`, устанавливая их стиль `display` на `'none'`.

Затем вы используете оператор `switch` для проверки значения `filterValue[0][0]`. В зависимости от значения, вы вызываете `hideTabContent()` и затем устанавливаете стиль `display` для соответствующего элемента `ct`.

В целом, код скрывает все элементы `ct`, а затем отображает только один из них в зависимости от значения фильтра.
👍1
Далее я прошу дополнить код выше, подписавшись на изменение переменной filterVallue и получаю такой ответ👇
Forwarded from ТочкаGPT
Чтобы подписаться на изменение переменной `filterValue` и автоматически скрывать и отображать элементы `ct` в зависимости от значения `filterValue`, вы можете использовать геттеры и сеттеры. Вот как это можно сделать:

```javanoscript
const content = ['widget-91d54751ffe044e6924b3b56f36fe754', 'widget-5a41fe962c9a4dd7832f6e0173310a56'];

const ct = content.map(item => document.getElementById(item));

let filterValue = visApi().getSelectedValues(w.general.renderTo);

const hideTabContent = () => {
ct.forEach(item => {
item.style.display = 'none';
});
};

const showTabContent = (index) => {
hideTabContent();
ct[index].style.display = 'block';
};

Object.defineProperty(window, 'filterValue', {
get: function() {
return filterValue;
},
set: function(newValue) {
filterValue = newValue;
switch (filterValue[0][0]) {
case '1кв':
showTabContent(0);
break;
case '2кв':
showTabContent(1);
break;
case '3кв':
showTabContent(2);
break;
default:
showTabContent(0);
break;
}
}
});

// Пример использования
filterValue = visApi().getSelectedValues(w.general.renderTo); // Передаем новое значение filterValue
```

В этом коде мы определяем геттер и сеттер для переменной `filterValue` с помощью `Object.defineProperty()`. При каждом изменении значения `filterValue`, сеттер будет вызываться автоматически. Внутри сеттера мы обновляем значение `filterValue` и затем вызываем функцию `showTabContent()`, чтобы отобразить соответствующий элемент `ct` в зависимости от нового значения `filterValue`.

Вы можете использовать этот пример в своем коде, чтобы подписаться на изменение `filterValue` и автоматически скрывать и отображать элементы `ct`.
👍1
Прелесть в том, что ChatGPT не только выполнил задачу(пока не идеально), но и улучшил мой код, вынеся добавление display: 'block' в отдельную функцию. Продолжаю допиливать запрос. Прошу доработать код с учётом того, что он запускается на платформе Visiology, поэтому для подписки на изменение переменной нужно использовать
visApi().onSelectedValuesChangedListener({ guid, widgetGuid }, handler) void

то есть handler будет исполняться, когда юзер выбрал значение, а внутри уже берём это значение и через visapi передаём на другой виджет
Далее мне понадобилось ещё 2 уточняющих промпта, чтобы Chat выдал мне полностью рабочий код. На всё про всё у меня ушло минут 20. Да, это был довольно простой пример, но с учётом того, что ещё год назад подобное казалось уделом далёкого будущего, подумайте, что будет лет через пять?
Надеюсь, не это👇
Разраб на колёсах pinned «Привет! 🖖 Меня зовут Макс и я — цифровой кочевник. Я живу, работаю и путешествую в автодоме 24/7, а этот блог — мой бортовой журнал. Кстати, я тут запилит бота для подготовки к собесам по фронту, кому актуально, пользуйтесь — MentorBot 🤖»
ChatGPT vs GigaChat
1:0


Сегодня решил сравнить импортный ИИ с отечественным. Для примера взял классическую задачку для джунов про замыкание. Не смотря на то, что она довольно простая, не только лишь все могут объяснить, как это работает. Вот задачка👇
Вот ответ ChatGPT👇
Forwarded from ТочкаGPT
Этот код представляет собой пример использования замыкания в JavaScript.

Функция `makeMultiplier` является фабричной функцией, которая принимает один аргумент `factor`. Она возвращает другую функцию (анонимную функцию), которая имеет доступ к переменной `factor` даже после того, как `makeMultiplier` завершает свое выполнение. Это возможно благодаря замыканию.

Возвращаемая функция, которую мы присваиваем переменным `double` и `triple`, принимает один аргумент `number`. Она умножает этот аргумент на значение `factor`, которое было передано в `makeMultiplier` при ее вызове, и возвращает результат.

Когда мы вызываем `double(5)`, это означает, что мы передаем число 5 в функцию, которую вернула `makeMultiplier(2)`. Внутри этой функции значение `factor` равно 2, поэтому результатом будет 2 * 5 = 10.

Аналогично, при вызове `triple(4)` мы передаем число 4 в функцию, которую вернула `makeMultiplier(3)`. Внутри этой функции значение `factor` равно 3, поэтому результатом будет 3 * 4 = 12.

Таким образом, код выводит в консоль числа 10 и 12.
Вот ответ GigaChat👇
Forwarded from GigaChat
Этот код создает две функции: `double` и `triple`, которые оба являются обертками для другой функции. Эта внутренняя функция принимает число и возвращает результат умножения этого числа на фактор, который был передан в момент создания обертки.

Когда мы вызываем `double(5)` или `triple(4)`, код создает новую функцию, которая умножает входное число на 2 или 3 соответственно. Затем он возвращает результат этого умножения. Когда мы выводим результат в консоль, мы видим ожидаемые значения: 10 и 12.

Таким образом, этот код демонстрирует, как можно создавать более сложные функции, которые могут быть использованы для упрощения более сложных задач программирования.
Итог такой — ответ ChatGPT более полный и понятный, он буквально разжёвывает объяснение. GigaChat (если кто не знает, это генеративка от Сбера), дал хоть и правильный, но поверхностный ответ, который на собесе бы, конечно, прокатил, но если вы хотите разобраться в вопросе, то интерпретация ChatGPT здесь выигрывает.
Вообще, я заметил, что прежде, чем что-то гуглить, я сначала иду за объяснением в ChatGPT, и Chat, в большинстве случаев, даёт не только более релевантный ответ, чем Google, но и экономит моё время.
————————————————————————
Так что гуглу уже стоит начать беспокоиться)) а они всё переносят дату выхода Gemini...
ChatGPT vs Gemini?

Буквально вчера в своём посте вспоминал уходящий в прошлое google-поиск и приходящий ему на смену ChatGPT, а сегодня прочитал в новостях, что Google показал убийцу ChatGPT Gemini (похоже, кто-то в Google читает мой блог😐). Gemini обходит самый мощный ChatGPT-4v по всем показателям и бла-бла-бла. Ну, я сразу отправился за пруфами в Bard, куда и должны интегрировать Gemini...правда, только через неделю и то, если не перенесут, о чём тоже мелькали новости))
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Решил, ради эксперимента, скормить Bard такую задачку на замыкание, какую давал ChatGPT и GigaChat из предыдущего поста. Вот, что ответил Bard👇