Как вывести в консоль функцию?
Как вывести в консоль данную функцию?
Она не выводится, напишите пожалуйста код, куда впихнуть этот консоль лог, первый день js изучаю
В консоль нужно вывести рандомное число, ну т.е эту функцию
- Вопрос задан более двух лет назад
- 1485 просмотров
2 комментария
Простой 2 комментария
Как вывести результат работы функции из js
Там у меня: «кнопка наверх, копипаст, вывод даты, вывод времени, кусок из libs и другое. «
Просмотреть его можно ТУТ
———————————
Мне нужно вывести результат работы этой функции в Main:
function time() var curDateTime = new Date()
var curHour = curDateTime.getHours()
var curMin = curDateTime.getMinutes()
var curTime =
((curHour < 10) ? "0" : "") + curHour + ":" + ((curMin < 10) ? "0" : "") + curMin
>
——————————
Решил вывести таким образом:
Но у меня выдался код функции. Подскажите еще варианты, чтоб вывелся готовый результат.
Ответил: Sander
6 комментариев
Похожие вопросы
Редактирование кода
16.12.2012 Ayk Общие вопросы
Конфликт скриптов
24.05.2013 nik1004 Общие вопросы, jQuery
Убрать из ява скрипты
07.09.2013 Дима87 Общие вопросы
После вывода результата функции, возле результата написано: undefined. Что делать?
08.11.2013 golden_eagle_god Общие вопросы, jQuery
Комментарии от VK.com (Можно ли сделать антиспам?)
07.02.2014 jtskeed Общие вопросы
Как передать содержимое фрейма в с помощью JS
21.05.2014 vk_159926832 Общие вопросы, jQuery
Передать переменную из фрейма (JS/Jquery)
09.10.2014 vk_159926832 Общие вопросы, jQuery, Общие вопросы по PHP
Как вывести код банера, чтоб он загружался последним?
11.11.2014 Бахмут Общие вопросы
Проблема с jquery. Как правильно установить Сhosen ?
03.01.2015 sr.green Общие вопросы
Какой скрипт отвечает за «meta property=»og:image» «.
24.06.2015 Missis-masjas Общие вопросы
Последние события
Sinoid | Как сделать вывод статистики общего коли . 18

Sinoid
Как сделать вывод статистики общего количества пользователей по каждому значению доп. поля?
Вчера, 20:33
-
в каждый
пару ключ+значение массива $resultArray[] ? Если примерно как ниже, то не знаю, будут ли такие пары без ошибок влезать в html:
+
>
?>
3. Напиши пжл весь country.php ещё раз со всеми изменениями и с кэшированием.
rewenas | Как сделать вывод статистики общего коли . 18

rewenas
Как сделать вывод статистики общего количества пользователей по каждому значению доп. поля?
Вчера, 18:01
Сразу хочу сказать я в этом деле самоучка. Так что могу что то не так понимать и реализовывать
rewenas | Как сделать вывод статистики общего коли . 18

rewenas
Как сделать вывод статистики общего количества пользователей по каждому значению доп. поля?
Вчера, 17:59
1 Если тебе нужно вывести из $iso_countries массива только ключи то:
$keys = array_keys($iso_countries);
2 В смысле переопределять? Его никто даже не трогал. Или я тебя просто не понимаю. Я всего лишь думал что инпутом у тебя пользователи выбирают страну :в следствие чего у тебя в столбец land таблицы dle_users заноситься двухбуквенный код стран.
Ещё сделал выбор страны проживания, который заносится скриптом в стандартный DLE-тег
Поэтому этим кодом:
if (isset($iso_countries[$country])) { $country_name = $iso_countries[$country]; $tpl->set('{land>', $country_name); > else { $tpl->set('{land>', 'Код страны не найден'); >
Заменил этот двухбуквенный код на название страны
3 Тогда тебе нужно:
$result = $db->query("SELECT land, COUNT(*) AS user_count FROM " . USERPREFIX . "_users WHERE land != '' GROUP BY land"); $resultArray = array(); while ($row = $result->fetch_assoc()) { $country = $row['land']; $user_count = $row['user_count']; $country_counts[$country] = $user_count; > foreach ($country_counts as $country => $user_count) { $resultArray[] = array( 'Страна' => $country, 'Количество пользователей' => $user_count ); >
Результат запроса сохраняется в переменной $result. Далее создается пустой массив для хранения данных $resultArray = array(); И далее внутри цикла foreach в этот массив записывается каждый элемент массива $country_counts в виде массива с ключами страна и количество пользователей. Наверное это то что тебе как раз надо
Sinoid | Как сделать вывод статистики общего коли . 18

Sinoid
Как сделать вывод статистики общего количества пользователей по каждому значению доп. поля?
Вчера, 16:53
rewenas, Спасибо. Но:
1. $iso_countries будет содержать только коды. Названия стран потом будет выводить скрипт.
2. нельзя переопределять. Он мне нужен сам по себе как доп. поле каждого юзера. Туда заносится выбор страны юзером и оттуда отображается страна и флаг рядом с аватаром юзера в его комментах и в профиле.
3. На выходе из PHP мне нужен только сортированный (или нет) массив ненулевых количеств юзеров по каждой стране. Далее этот массив будет обрабатываться скриптом через библиотеку Chart.js , чтобы выводить диаграмму по всем странам. Bootstrap не использую. Про графическое представление списка на странице статов можешь не думать. Лучше сделай комментарии в коде PHP или здесь, что там происходит хотя бы в основной логике алгоритма.
rewenas | Как сделать вывод статистики общего коли . 18

rewenas
Как сделать вывод статистики общего количества пользователей по каждому значению доп. поля?
Вчера, 16:21
1 Создать в engine/data/ конфигурационный файл country-configuration.php с массивом ключей, представляющими коды стран и их значения.
"Андорра", 'AE' => "Объединенные Арабские Эмираты", 'AF' => "Афганистан", // Здесь надо добавить все оставшиеся 245 стран из нужных 249. Их очень много и добавлять очень долго, я не стал 'ZW' => "Зимбабве", ); ?>
2 Создать через систему плагинов или просто так в engine/modules/ файл с названием country.php
include_once ENGINE_DIR . "/data/country-configuration.php"; $tpl->load_template('users-country.tpl'); $tpl->result['users-country'] = dle_cache( "users-country_", $tpl->result['users-country'], true); if (!$tpl->result['users-country']) { $result = $db->query("SELECT land, COUNT(*) AS user_count FROM " . USERPREFIX . "_users WHERE land != '' GROUP BY land"); $country_counts = array(); while( $row = $db->get_row($result) ) { $country = $row['land']; $user_count = $row['user_count']; if (isset($iso_countries[$country])) { $country_name = $iso_countries[$country]; $tpl->set('{land>', $country_name); > else { $tpl->set('{land>', 'Код страны не найден'); > $tpl->set('{user-count>', $user_count); $tpl->compile('users-country'); > $tpl->clear(); create_cache( "users-country_", $tpl->result['users-country'], true ); > echo $tpl->result['users-country']; ?>
3 В папке вашего шаблона создать новый users-country.tpl файл. ( Стили в нем написаны просто для примера, их необходимо перенести в свой CSS файл вашего шаблона. Можно их изменять или добавлять новые, делая оформление на ваш вкус и цвет.)
4 В шаблоне stats.tpl вставить строку подключения {include file=»/engine/modules/country.php»>
rewenas | Как сделать вывод статистики общего коли . 18

rewenas
Как сделать вывод статистики общего количества пользователей по каждому значению доп. поля?
Вчера, 01:51
Не знаю насколько конечно это правильно, но я вижу это в голове у себе немного по другому. Завтра постараюсь реализовать
Sinoid | Как сделать вывод статистики общего коли . 18

Sinoid
Как сделать вывод статистики общего количества пользователей по каждому значению доп. поля?
Вчера, 01:11
rewenas, Понятно, что в статистику нет смысла выводить страны, которые никто не выбрал. Но ожидаю, что за несколько месяцев работы моего глобального научного сайта наберутся юзеры из около 60-80 стран. Всё равно много переменных выводить нужно. Допустим, внутри PHP считаем и формируем теги только тех стран zz, где > 0, заносим их в массив, сортируем по убыванию, а на страницу статистики выдаём список рейтинга из пар zz: . Как это всё реализовать в PHP?
rewenas | Как сделать вывод статистики общего коли . 18

rewenas
Как сделать вывод статистики общего количества пользователей по каждому значению доп. поля?
Вчера, 00:32
Можно например вывести только те страны что пользователи отметили у себя и посчитать в них суммарное количество пользователей. Причем сделать это отдельно подключаемым шаблоном, который отдельной строкой можно подключить в шаблоне статистики.
rewenas | Как сделать вывод статистики общего коли . 18

rewenas
Как сделать вывод статистики общего количества пользователей по каждому значению доп. поля?
Вчера, 00:30
Sinoid | Как сделать вывод статистики общего коли . 18

Sinoid
Как сделать вывод статистики общего количества пользователей по каждому значению доп. поля?
18-11-2023, 21:30
rewenas, А что делать? Есть какое-то другое решение. Ну и что, это лишь временные переменные в виде тегов.
- Sign In with Apple для DLE 14 2
- Модуль парсер ссылки с донора и з… 0
- Модификация аватарок DLE 16.1 27
- Модуль — Парсер статей и интеграц… 0
- Добавить поддержку для … 4
- Как обрезать название статьи 1
- Скрипт автозаполнения полей 3
- Парсер/граббер или конвертация БД 1
- Добавление дополнительного функци… 1
- Реализовать адекватную загрузку а… 4
- Запоминание открытой вкладки и со… 0
- Авторизация пользователей через Т… 0
- GeoIP — показ информации в зависи… 0
- Push-уведомление через OneSignal.… 0
- Giphy for comments (TinyMCE) 4
- Множественные опросы — модуль Mul… 0
- Расширенные закладки 0
- Расширение возможностей аккаунта … 0
- ChatGPT Driver 2
- Country Filter 0
Bablosoft
Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
написал в отредактировано Viktor
Нашел функцию вычитания списков. Отрабатывает нормально (в смысле без ошибок:)), но не могу вывести в консоль переменную С
Пишет «ReferenceError: С is not defined» **var A = [[FINDED_AKK_LIST]], B = [[BLACKLIST]]; function DiffArrays(A,B)
var M = A.length, N = B.length, c = 0, C = [];
for (var i = 0; i < M; i++)
< var j = 0, k = 0;
while (B[j] !== A[ i ] && j < N) j++;
while (C[k] !== A[ i ] && k < c) k++;
if (j == N && k == c) C[c++] = A[ i ];
> return C;
>
console.log(С);**
Вроде все, как в видео. С переменной С многое что делается без ошибок. Но только я пытаюсь вывести ее значение в консоль, как она сразу становится UNDEFINED. Почему.
Возврат функций из функций — JS: Функциональное программирование
По своему опыту могу сказать, что возврат функций из функций вызывает наибольшие сложности у новичков. И дело даже не в том, что возврат сложен сам по себе, а в том, что поначалу очень сложно понять, зачем это может понадобиться. В реальной жизни эта техника используется часто, причем как в JavaScript, так и во многих других языках. Функции, принимающие на вход функции, которые возвращают функции — обычное дело для любого кода на JavaScript.
Для закрепления материала пройдитесь по нему два раза. Первый раз просто бегло прочитайте, второй раз изучите внимательно, проверяя каждую строчку кода на сервисе repl.it .
Начнем погружение с уже пройденного материала:
const identity = (v) => v; identity('wow'); // wow const sum = identity((a, b) => a + b); sum(1, 8); // 9
Функции — это такие же данные, как числа или строки, поэтому функции можно передавать в другие функции в виде аргументов, а также возвращать из функций. Мы даже можем определить функцию внутри другой функции и вернуть ее наружу. И в этом нет ничего удивительного. Константы можно создавать где угодно.
const generateSumFinder = () => const sum = (a, b) => a + b; // создали функцию return sum; // и вернули ее >; const sum = generateSumFinder(); // sum теперь — функция, которую вернула функция generateSumFinder sum(1, 5); // 6 // sum складывает числа
Можно даже обойтись без промежуточного создания константы:
// вызвали функцию, которая возвращает функцию, // и тут же вызвали возвращенную функцию generateSumFinder()(1, 5); // 6 // ((a, b) => a + b)(1, 5)
Всегда, когда видите подобные вызовы f()()() , знайте: функции возвращаются!
Теперь посмотрим, как еще можно описать функцию generateSumFinder :
// предыдущий вариант для сравнения // const generateSumFinder = () => // const sum = (a, b) => a + b; // return sum; // >; // новый вариант const generateSumFinder = () => (a, b) => a + b;
Для понятности можно расставить скобки:
const generateSumFinder = () => ((a, b) => a + b);
Определение функции обладает правой ассоциативностью. Все, что находится справа от => , считается телом функции. Количество вложений никак не ограничено. Вполне можно встретить и такие варианты:
const sum = (x) => (y) => (z) => x + y + z; // расставим скобки для того чтобы увидеть как функции вложены друг в друга // const sum = x => (y => (z => x + y + z)); sum(1)(3)(5); // 9
Ту же функцию можно представить другим способом, вынеся каждую функцию в свою собственную константу. Этот способ полезен как мысленный эксперимент, чтобы понять, где заканчивается одна и начинается другая функция. Но сама по себе она не заработает, потому что теряется замыкание.
const inner1 = (z) => x + y + z; const inner2 = (y) => inner1; const sum = (x) => inner2;
Попробуем последовательно пройтись по вызовам функции выше, чтобы понять, как получается результат. После каждого вызова (кроме последнего) возвращается новая функция, в которую подставлено значение из внешней функции за счет замыкания.
sum(1)(3)(5); // 9 const sum1 = (x) => (y) => (z) => x + y + z; // sum(1); const sum2 = (y) => (z) => 1 + y + z; // inner2 // sum(1)(3) const sum3 = (z) => 1 + 3 + z; // inner1 // sum(1)(3)(5) const sum4 = 1 + 3 + 5; // 9
Как видно выше, sum1 , sum2 и sum3 — это функции, а sum4 уже число, так как были вызваны все внутренние функции.
Давайте распишем все функции:
const sum = (x) => (y) => (z) => x + y + z; // const sum = x => (y => (z => x + y + z));
- Функция sum принимает x и возвращает функцию, которая
- принимает y и возвращает функцию, которая
- принимает z и возвращает сумму x + y + z
Попробуем развить идею функции callTwice из предыдущего урока. Напишем функцию generate , которая не применяет функцию сразу, а генерирует новую.
const generate = (f) => (arg) => f(f(arg)); // const generate = f => (arg => f(f(arg)));
Функция generate принимает функцию в качестве аргумента и возвращает новую функцию. Внутри новой функции переданная изначально функция вызывается два раза:
Создадим функцию f1 . Она будет той функцией, которую вернет generate если передать ей функцию Math.sqrt (она вычисляет квадратный корень числа).
Получается, f1 — это функция, которая принимает число и возвращает корень корня — Math.sqrt(Math.sqrt(x)) :
const f1 = generate(Math.sqrt); f1(16); // 2 // generate(Math.sqrt)(16);
Еще пример: передадим в функцию generate новую функцию на ходу, без предварительного создания. Переданная функция возводит число в квадрат.
const f2 = generate(x => x ** 2); f2(4); // 256 // generate(x => x ** 2)(4);
Теперь функция f2 возводит число в квадрат два раза: (4 2 ) 2 .
Функция generate имеет такое имя не просто так. Дело в том, что возврат функции порождает каждый раз новую функцию при каждом вызове, даже если тела этих функций совпадают:
const f1 = generate(x => x ** 2); const f2 = generate(x => x ** 2); console.log(f1 === f2); // => false
Поэтому про любую функцию, которая возвращает функцию можно сказать что она генерирует функцию. Запомнить довольно просто, если вы где-то слышите или читаете что происходит генерация функций, значит кто-то их возвращает.
Замыкание
Работа практически всех описанных примеров базировалась на одном интересном свойстве, которое называется «замыкание». О нем говорилось в предыдущем курсе, но пришло время освежить память.
const generateDouble = (f) => (arg) => f(f(arg)); const f1 = generateDouble(Math.sqrt);
Когда generateDouble закончила работу и вернула новую функцию, экземпляр функции generateDouble исчез, уничтожился вместе с используемыми внутри аргументами.
Но та функция, которую вернула generateDouble , все еще использует аргумент. В обычных условиях он бы навсегда исчез, но тут он «запомнился» или «замкнулся» внутри возвращенной функции. Технически внутренняя функция, как и любая другая в JavaScript, связана со своим лексическим окружением, которое не пропадает, даже если функция покидает это окружение.
Функция, которая была возвращена из generateDouble , называется замыканием. Замыкание — это функция, «запомнившая» часть окружения, где она была задана. Функция замыкает в себе идентификаторы (все, что мы определяем) из лексической области видимости.
В СИКП дается прекрасный пример на понимание замыканий. Представьте себе, что мы проектируем систему, в которой нужно запомнить пароль пользователя, а потом проверять его, когда пользователь будет заново заходить. Можно смоделировать функцию savePassword , которая принимает на вход пароль и возвращает предикат, то есть функцию, возвращающую true или false, для его проверки. Посмотрите, как это выглядит:
const secret = 'qwerty'; // Возвращается предикат. const isCorrectPassword = savePassword(secret); // Теперь можно проверять console.log(isCorrectPassword('wrong password')); // => false console.log(isCorrectPassword('qwerty')); // => true
А вот как выглядит код функции savePassword :
const savePassword = password => passwordForCheck => password === passwordForCheck;
Возврат функций в реальном мире (Debug)
Логгирование — неотъемлемая часть разработки. Для понимания того, что происходит внутри кода, используют специальные библиотеки, с помощью которых можно логгировать (выводить) информацию о проходящих внутри процессах, например в файл. Типичный лог веб-сервера, обрабатывающего HTTP-запросы выглядит так:
В JavaScript самой популярной библиотекой для логгирования считается Debug . Вот как выглядит ее вывод:
Обратите внимание на левую часть каждой строки. Debug для каждой выводимой строчки использует так называемый неймспейс, некоторую строчку, которая указывает принадлежность выводимой строчки к определенной подсистеме или части кода. Он используется для фильтрации, когда логов становится много. Другими словами, можно указать «выводи сообщения только для http». А вот как это работает:
import debug from 'debug'; const logHttp = debug('http'); const logHandler = debug('handler'); logHttp('hello!'); logHttp('i am from http'); logHandler('hello from handler!'); logHandler('i am from handler');
Что приведет к такому выводу:
Открыть доступ
Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно
- 130 курсов, 2000+ часов теории
- 1000 практических заданий в браузере
- 360 000 студентов
Наши выпускники работают в компаниях:
Предыдущая запись
