Owly
как к нему достучаться?
Sergey
Sergey
Это невозможно
Sergey
Ключ может быть либо строкой
Sergey
Либо числом
Owly
точно никак?
Sergey
Если ты имеешь ввиду, что по какому-то ключу в объект положили объект
Sergey
То ты не так объясняешь
Sergey
Юзай квадратные скобки
Sergey
obj['my-value']
Sergey
Типа того
Sergey
obj['my-value']
Можно и переменную положить в скобки
Ivan
Либо числом
число все равно к строке приводится
Owly
но если допустим я не знаю какой именно ключ?
Sergey
🦜
можно проверить его value
Sergey
Но это уже другая задача
Ivan
Нет
поподробнее?
Owly
а разве цыкл проверит самый глубокий обьект?
Дима
WeakMap
Обычный Map тоже можно
Ivan
конечно
🦜
а разве цыкл проверит самый глубокий обьект?
рекурсивный да, можно попробовать lodash
Sergey
Обычный Map тоже можно
В качестве ключа положить объект?
Дима
Да
Андрей
Да, только смысла в этом мало.
Sergey
поподробнее?
Объект хранит ключи строковые и числовые
Дима
Регулярно этим пользуюсь
Павел
проходи по массиву, потом проходи по каждому объекту в поисках нужного тебе значения
Alexander
ключ-объект преобразовывается в строку "[object Object]"
Sergey
Есть ивент листенер на клик по контейнеру. Как узнать на что кликнул я внутри контейнера?
Sergey
А теперь посмотри как он их сортирует
Андрей
Хм...
Sergey
🦜
а jQuery?
не знаю его
Ivan
В объекте ключи должны быть строками, когда в Map они могут иметь любой тип.
Ivan
https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Map
Stepan
Нет
Где можно почитать что ключи могут быть числами? Я что то тоже не понял
CherryTea
https://keeffeoghan.github.io/work/tendrils/ когда ты клепаешь формочки а люди делают реально крутецкие вещи на js
Ivan
ещё вопросы?
'1' < 'a' true
Ivan
и сортирует он их как строки
Sergey
Sergey
может спеку откроешь?
Sergey
'1' < 'a' true
ещё раз повторяю: в объекте два вида ключей: числа и строки числа сортируются и встают перед строками строки остаются в том порядке, в котором добавили
Дима
В объекте сначала идут ключи, которые при конвертировании в int и обратно остаются такими же, потом остальные строковые в порядке добавления, потом символы в порядке добавления
Ivan
ещё раз повторяю: в объекте два вида ключей: числа и строки числа сортируются и встают перед строками строки остаются в том порядке, в котором добавили
мы наверное о разном говорим, тк вот из спеки цитата «Properties are identified using key values. A property key value is either an ECMAScript String value or a Symbol value.»
Дима
хорошее описание сортировки, показывает как внутри устроено
Я этот текст просто без изменений копирую уже года два) Регулярно поднимается вопрос
Dika
А теперь посмотри как он их сортирует
Сортировка не имеет значения в данном случае. Можно не использовать числовые типы вообще, сортировка будет такая же. var obj = {} obj['3'] = 'a' obj['2'] = 'b' console.log(obj) //=> { '2': 'b', '3': 'a' }
Ivan
скорее всего из диапазона вышел int’a
Sergey
Сортировка не имеет значения в данном случае. Можно не использовать числовые типы вообще, сортировка будет такая же. var obj = {} obj['3'] = 'a' obj['2'] = 'b' console.log(obj) //=> { '2': 'b', '3': 'a' }
@ZeroBias описал корректно то, как происходит > ключи которые при конвертировании в int и обратно остаются такими же то есть по факту, ЧИСЛОВЫЕ ключи сортируются
Ivan
может такое хранение реализовано для корректной работы с массивами
yandexphp
Всем привет. Народ подскажите пожалуйста кто знает где можно найти CJM модуль или библиотеку на js?
Anonymous
ребят привет. не могу понять... неужели если не перезагружая страницу, выполнять jquery.on('click', ...) несколько раз на один и тот же объект, то это посчитается как несколько одинаковых обработчиков?
Anton Saprykin
Че
Anonymous
суть такая, что у меня меняется сожержимое только в content диве, и я при загрузке содержимого выполняю "переинициализацию" всех слушателей событий. и столкнулся с тем, что навешенные на кнопку обработчики срабатывают столько раз, сколько раз контент подгружался...
Anonymous
никто не сталкивался с подобным поведением?..
Illia
вешай событие на родителя и проверяй event.currentTarget
Illia
on - добавляет очередной обработчик а не перезаписывает старый
Illia
по идее нет
Illia
ну есть off
Illia
но тогда нужно вешать событие не анонимной функцией, а типа
Anonymous
по идее нет
пи***ц какойто
Anonymous
маразм не иначе
Illia
function func() { return 2+2} btn.off('click', func); btn.on('click', func);
Illia
проще повесить событие на родителя и не переинициализировать ничо
Illia
да и правильнее