@JSlang

Страница 631 из 2237
Sasha
10.02.2017
10:37:45
А как определяется что нужно удалить элемент?
Такого прям проперти, как айди нет внутри объекта. Но ведь у каждого объекта должен быть свой уникальный идентификатор, хэш? Я могу написать аналог на питоне или на java.

Котяй Негодяй
10.02.2017
10:38:34
enzyme ?
Там не представлен matchMedia.

Он ваще, похоже, только в браузерах и есть.

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

Sasha
10.02.2017
10:41:00
Ну перед добавлением используешь какой-нибудь индекс.
индексы там не подойдут. очень нетривиальная ситуация

хешей нет отфильтруй по ссылке на объект
вот по ссылке - это норм вариант. Подскажите: как можно проверить?

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

Сергей
10.02.2017
10:41:49
delete arr[index]
Бляяя И у массива не изменится длина

Alexander
10.02.2017
10:42:00
И что?

Зато быстро.

Sasha
10.02.2017
10:42:16
delete arr[index]
это вообще не то

Oleg
10.02.2017
10:42:21
Зато быстро.
Утечка памяти

Сергей
10.02.2017
10:42:27
вот по ссылке - это норм вариант. Подскажите: как можно проверить?
const target = {a:1} const arr = [] arr.push(target) const newArr = arr.filter(a => a !== target)

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.

ну есть же Map и Set
Но для мэпа нужны какие-то идентификаторы. А их нет, если нет хэша у объектов

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
ага))) пойду в туалет хабр читать
ну там в комментах mraleph всё пояснил

Sasha
10.02.2017
10:52:26
Нужно объектам айди давать
А ты имеешь ввиду просто давать инкремент инту или есть какие-то tips & tricks для жс?

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
Я пробовал, не скрывает почему-то

Страница 631 из 2237