|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
|
|||||||||||
Удаление повторяющихся элементов массива в коде расширения Copy All Links для Firefox13.09.2016, 20:49. Показов 1171. Ответов 10
Метки нет (Все метки)
Друзья! Всё ли верно в этом коде? Он, я так понял, удаляет дубликаты из массива newArray
Код не мой. Вот расширение Copy All Links для Firefox, оно копирует в буфер обмена строки-ссылки для со всех открытых вкладок. И когда ссылок много, порядка 6000, выводит стандартное сообщение, типа "похоже что сценарий на этой странице не отвечает, можно его остановить или продолжить" и всё такое. И выводит номер строку, где сценарий спотыкается. Эта строка 279 файла copyalllinks.js, а тут это строка
Я в яваскрипт не силён, я больше на плюсах; решил вот спросить, всё ли правильно в этом коде? Быть может, он просто ДОЛОГ и мне следует просто-напросто продолжать сценарий на странице? Спасибо, кто откликнется.
0
|
|||||||||||
| 13.09.2016, 20:49 | |
|
Ответы с готовыми решениями:
10
Удаление расширения Антимат в firefox Создание расширения для Firefox. Перевод расширений Chrome на Firefox Удаление из массива повторяющихся элементов |
|
261 / 209 / 99
Регистрация: 13.12.2015
Сообщений: 1,098
|
|||||
| 13.09.2016, 21:47 | |||||
|
одним циклом for по массиву - зачем два? 2. имхо лучше и работать с объектом - смотря ключи какие... если тысячи объектов, то ... и ключи строки - можно перенести алгоритм любого вида в случае неповторения ключей у вас сложность квадратичная, по-сути, а, если вы постоянно шерстите... оно как часто вызывается? тут деревья нужны с гарантированным доступом к элементу и тогда мы получаем N*lgN, те уже красивее смотрится, но мы же опять-таки поверх интерпетора (можно и предкомпилировать в jit-code) короче швак полный с подобными АТД сейчас вышли экпериментальные "коллекции элементов". ему ток контент получай опять-таки, учитывайте. Добавлено через 9 минут здесь нет очередей, нет деревьев, нет в джаве надо под хэш затачивать имхо, опять-таки - таблицы хешей ключей массивов... если только добавлять, удалять и тд... т.е. проверяться на равность уже при входе будет, причем за Const причем Const меньше логарифмического в подавляющем. поэтому, если JS, то пока нет утвержденных структур, то ... я сам новичок в JS...
0
|
|||||
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
|
|
| 13.09.2016, 22:41 [ТС] | |
|
Вообще говоря, я уже проблему решил так. Вместо функции пишу заглушку, получаю массив из 29000 строк в буфере обмена (приложение так и должно работать, оно запихивает все найденные строки ссылки в буфер обмена). Среди них много повторяющихся.
После чего вставляю эти строки в файл, ну а дальше дело техники. Удаляю дубликаты (на плюсах; можно в Notepad++, но он, помимо удаления повторяющихся строк их сортирует, что мне не нужно). Получаю 6000 строк-ссылок. Ровно столько же я получаю, если не пользуюсь заглушкой, то есть через яваскрипт. Но там минус- вылезает зачем-то сообщение. Но хотелось бы вопрос-то добить уже. Можно как-то на яваскрипте сделать, чтобы это дурацкое сообщение не вылезало? Я так понял, код правилен, но работает долго (или памяти много жрёт, я не знаю.). Но задержка времени на мой взгляд, мала. Секунд 10 может. Не из-за чего беспокоиться. Ну покрутится цикл 10 секунд ничего страшного, на мой взгляд. Можно галку поставить "не показывать это сообщение", но хотелось бы покрасивее вопрос решить.
0
|
|
|
936 / 693 / 236
Регистрация: 01.02.2015
Сообщений: 1,848
|
||||||
| 13.09.2016, 23:20 | ||||||
|
Так можно отсортировать в один проход
0
|
||||||
|
261 / 209 / 99
Регистрация: 13.12.2015
Сообщений: 1,098
|
||||
| 13.09.2016, 23:27 | ||||
какую заглушку? буфер обмена чего?![]() Добавлено через 5 минут в случае работы с графикой нужен обычный массив. мысли новичка.
0
|
||||
|
936 / 693 / 236
Регистрация: 01.02.2015
Сообщений: 1,848
|
|||||||
| 13.09.2016, 23:31 | |||||||
![]()
0
|
|||||||
|
261 / 209 / 99
Регистрация: 13.12.2015
Сообщений: 1,098
|
||||||||
| 13.09.2016, 23:44 | ||||||||
замудренно. так заикой останешься... ![]()
0
|
||||||||
|
936 / 693 / 236
Регистрация: 01.02.2015
Сообщений: 1,848
|
||||||||
| 13.09.2016, 23:55 | ||||||||
0
|
||||||||
|
261 / 209 / 99
Регистрация: 13.12.2015
Сообщений: 1,098
|
|||||||
| 14.09.2016, 00:02 | |||||||
имя массива объявить, если для графики и передать краткому циклу - см. выше эт, самое эффективное, особенно если память выделять еще заранее и столько, чтобы потом delete )) ладно хоть запускают SIMD - тож экспирементально. так легко
0
|
|||||||
|
261 / 209 / 99
Регистрация: 13.12.2015
Сообщений: 1,098
|
|||
| 14.09.2016, 14:38 | |||
скоро, думаю, все будет...
0
|
|||
| 14.09.2016, 14:38 | |
|
Помогаю со студенческими работами здесь
11
Удаление повторяющихся элементов массива Удаление из массива повторяющихся элементов Удаление из массива повторяющихся элементов
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|