
Sasha
10.02.2017
10:37:45

Котяй Негодяй
10.02.2017
10:38:34
Он ваще, похоже, только в браузерах и есть.

Alexander
10.02.2017
10:39:11

Google

Sasha
10.02.2017
10:39:38
Ассоциативный массив, конечно, быстрее.
А как узнать хэш у объекта? Никак не могу нагуглить.
У меня есть массив с объектами: [<Object1>, <Object2>,....] и мне нужно с минимальныими потерями удалить оттуда например <Object2>. Но не по какому-то проперти

Сергей
10.02.2017
10:40:10

Oleg
10.02.2017
10:40:13

Alexander
10.02.2017
10:40:28

Sasha
10.02.2017
10:41:00

Alexander
10.02.2017
10:41:31
delete arr[index]

Сергей
10.02.2017
10:41:49

Alexander
10.02.2017
10:42:00
И что?
Зато быстро.

Sasha
10.02.2017
10:42:16

Oleg
10.02.2017
10:42:21

Сергей
10.02.2017
10:42:27

Google

Сергей
10.02.2017
10:42:44
Зато быстро.
быстро?
Это просто замена на undefined с утечкой

Oleg
10.02.2017
10:43:37
Нужно либо объектам дать айдишники и юзать не массив а объект, либо страдать с перебором массива каждый раз

Сергей
10.02.2017
10:44:05
ну есть же Map и Set

Oleg
10.02.2017
10:44:24
Или вот мап и сет

Sasha
10.02.2017
10:44:43
понял, то есть в жс ссылку мы проверяем так же ([<object1>, <object2>,...][1] === <object2>]) === true?
Это схематичные пример, прост в том же питоне проверка ссылки - это is.

Oleg
10.02.2017
10:46:06
Без идентификаторров никак

Сергей
10.02.2017
10:46:08

Sasha
10.02.2017
10:47:11
Спасибо большое вам. Понял, что без перебора к сожалению не обойтись.

Oleg
10.02.2017
10:47:28
Нужно объектам айди давать
Это классика
Для JS

Alexander
10.02.2017
10:48:09
А реализация delete-а.
Вот тут читайте: https://habrahabr.ru/post/150723/

Oleg
10.02.2017
10:48:35
По факту хеши объектов в других языках - тек же айди, только автоматом генерятся

Сергей
10.02.2017
10:48:39
ага))) пойду в туалет хабр читать

Dreamerinnoise
10.02.2017
10:49:59

Sasha
10.02.2017
10:52:26

Google

Oleg
10.02.2017
10:52:51
У тебя есть объекты
Много
Их нужно куда-то все положить
Но при этом ещё и удалять
И часто
Объекты имеют какие-либо айди
Ты берешь делаешь обычный JS-объект
Ключи - айдишники
Значения - эти объекты

Alexander
10.02.2017
10:53:57
?

Oleg
10.02.2017
10:54:06
Всё работает очень быстро и без утечек

Sasha
10.02.2017
10:54:12
Я вот про ключи

Alexander
10.02.2017
10:54:16
На самом деле не важно айди или не айди, просто уникальные индексы/ключи нужны.
А делай ты их как хочешь.

Sasha
10.02.2017
10:54:49
Есть ли какие-то интересные и актуальные способы генерации ключей?

Oleg
10.02.2017
10:56:17
Можно вот про это прочитать
https://learn.javascript.ru/symbol
Это прям чтоб соасем уникально
Можно просто порядковые номера
Айдишники из базы там

Google

Oleg
10.02.2017
10:57:03
Если с сервера прилеьело

Ammendorf
10.02.2017
11:07:01
Народ, как показать элемент удаленный?

Артем
10.02.2017
11:09:02
Непонятный вопрос, откуда удаленный? Где показать?

Ammendorf
10.02.2017
11:09:16
page_header.remove('page_header');
а потом его как показать?
восстановить ли

Admin
ERROR: S client not available

Oleg
10.02.2017
11:09:49
А ещё детальнее?

Dream
10.02.2017
11:09:59
это по ходу жеквери
)

Ammendorf
10.02.2017
11:10:06
Не
Чистый JS
Ну из DOM удаляю документ сначала
page_header.remove('page_header');

Oleg
10.02.2017
11:10:30
Тогда мы не можем ничем помочь

Ammendorf
10.02.2017
11:10:36
а потом его же (page_header) надо показать как-то (восстановить)

Oleg
10.02.2017
11:10:39
Потому что нужно понимать контекст
Фреймворк
Библиотеку
Детали

Google

Артем
10.02.2017
11:11:28
Ну, если я не ошибаюсь, удаленные элементы из DOM не восстанавливаются если ты используешь elem.remove()

Oleg
10.02.2017
11:11:55
Но кто-то попытался угадать, да

Ammendorf
10.02.2017
11:11:55
а если page_header.parentNode.removeChild('page_header');
?

Артем
10.02.2017
11:12:02
Аналогично

Ammendorf
10.02.2017
11:12:11
Ппц

Артем
10.02.2017
11:12:16
Ведь нет никакого хранилища или корзины
Куда ты складываешь удаленное)

Ammendorf
10.02.2017
11:12:27
А скрыть же можно просто? Через page_header.style?

Dream
10.02.2017
11:12:32
тебе нужно держать где-то копию элемента который ты удаляешь

Артем
10.02.2017
11:12:33
Ну да
display none
Либо копия, да
Присвой display none и он исчезнет. Но в DOM все равно будет

Ammendorf
10.02.2017
11:13:06
page_header.style.display = "none";
так?

Артем
10.02.2017
11:13:10
Если задача скрыть, то display отлично подойдет

Ammendorf
10.02.2017
11:13:14
Я пробовал, не скрывает почему-то