Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.04.2016, 10:44   #1
nibufep
Форумчанин
 
Регистрация: 02.08.2014
Сообщений: 476
По умолчанию Проверка существования записи в логе

Доброго дня!
Имеется такая функция:

Код:
	function addloglist(a, text) {
        $('#' + a).append('<div id="' + i + '"><p>' + text + ' <a onclick="init(' + i + '); return false;">Удалить</a></p></div>');
		i++;
    }
Если много раз записывать одну и туже ошибку, например:
Код:
addloglist("loglist","Ошибка 1");
То они будет идти вот таким списком:

Цитата:
Ошибка 1 Удалить

Ошибка 1 Удалить

Ошибка 1 Удалить

Ошибка 1 Удалить

Ошибка 1 Удалить

Ошибка 1 Удалить
Можно ли сделать если в логе последняя ошибка именно "Ошибка 1" то записывалось "Ошибка 1 (1)" потом "Ошибка 1 (2)" и тд. в тот же блок, а не в новую строку?

(Прикрепил скриншоты: 1 как сейчас. 2 как нужно)
Изображения
Тип файла: png 2016-04-16_104256.png (7.0 Кб, 67 просмотров)
Тип файла: png 2016-04-16_104341.png (2.4 Кб, 69 просмотров)
nibufep вне форума Ответить с цитированием
Старый 16.04.2016, 10:55   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Что-нибудь типа

Код:
var messages = [];

function addMessageToList(text) {
    if (messages[text]) {
        var num = messages[text];
        messages[text]++;

        text +=  ' (' + num + ')';
    }
    else {
        messages[text] = 1;
    }

    print(text);
}
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 16.04.2016, 11:02   #3
nibufep
Форумчанин
 
Регистрация: 02.08.2014
Сообщений: 476
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Что-нибудь типа

Код:
var messages = [];

function addMessageToList(text) {
    if (messages[text]) {
        var num = messages[text];
        messages[text]++;

        text +=  ' (' + num + ')';
    }
    else {
        messages[text] = 1;
    }

    print(text);
}
не очень понял как это в мою функцию внедрить...
nibufep вне форума Ответить с цитированием
Старый 16.04.2016, 11:06   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Подумать, изучить код (и основы JS по необходимости http://javascript.ru/basic/array) и внедрить.

Вообще-то это и есть почти та же функция.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 16.04.2016, 16:37   #5
Fenex
Форумчанин
 
Аватар для Fenex
 
Регистрация: 15.02.2012
Сообщений: 823
По умолчанию

Ремарочка: объявить следует объект, а не массив:
Код:
var messages = {};
^-.-^ My GitHub
Fenex вне форума Ответить с цитированием
Старый 18.04.2016, 13:01   #6
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Цитата:
Сообщение от Fenex Посмотреть сообщение
Ремарочка: объявить следует объект, а не массив:
Код:
var messages = {};
так тож сканает) Массив является объектом)
Alar, верни репу!
Naive вне форума Ответить с цитированием
Старый 19.04.2016, 05:10   #7
Fenex
Форумчанин
 
Аватар для Fenex
 
Регистрация: 15.02.2012
Сообщений: 823
По умолчанию

Цитата:
Сообщение от Naive Посмотреть сообщение
так тож сканает) Массив является объектом)
Возможно такое и сканает для ES6... Но на текущий момент в браузерах такое не провернуть.
^-.-^ My GitHub
Fenex вне форума Ответить с цитированием
Старый 19.04.2016, 10:08   #8
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Код:
var test = [];
>undefined
test['foo'] = 1;
>1
test['bar'] = 2;
>2
test['foo']
>1
test['bar']
>2
test['bar'] + test['foo']
>3
test.length // и это по-прежнему массив
>0
Alar, верни репу!
Naive вне форума Ответить с цитированием
Старый 19.04.2016, 10:53   #9
Fenex
Форумчанин
 
Аватар для Fenex
 
Регистрация: 15.02.2012
Сообщений: 823
По умолчанию

А, ну да. Логично даже
^-.-^ My GitHub
Fenex вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверка существования email AppData Работа с сетью в Delphi 13 27.04.2014 07:10
Проверка существования записи StudentMarat Помощь студентам 4 13.11.2011 20:26
Проверка существования записи NikkMih C/C++ Базы данных 3 19.10.2011 11:26
Проверка существования слова. C# kloffelin Помощь студентам 2 18.03.2011 10:50
Проверка существования компонента _-Re@l-_ Общие вопросы Delphi 3 29.12.2010 18:59