Каждый раз когда делается put, логируем содержимое внутреннего объекта keeper.
После первого put он {'[object Object]': 999}, после второго {'[object Object]': "lol"}.
Видишь, что с тем-же самым ключом [object Object] хранятся данные, положенные для разных объектов в переменных key1 и key2. Механику описал @xoria:
Из-за вышеописанного получается что для объекта в переменной key2 возвращается не то значение, которое было положено для этого объекта.
получается что в качестве ключа все равно вписалась просто строка а не ссылка? а строки они одинаковые в отличие от ссылок на разные объекты. и значение тупо перезаписывалось . так?
Я не знаю как иначе мне передать туда ссылку, я уже столько всего перечитал но везде пишут только об [object Object] как строке. Просвети темноту плз. или кажи где об этом можно узнать я сам прочитаю))
Можешь придумать способ связать хранить пару объектов так чтобы имея ссылку на один из них можно было получить второй? Ты можешь использовать сколько угодно вспомогательных объектов и массивов, создавать любые структуры из них.
Ситуация такая, что ты не сможешь отличать разные объекты, если они будут у тебя ключами в главном объекте keeper. По факту любые объекты будут [object Object] и значение последнего будет перезаписывать предыдущее. Поэтому тебе надо придумать другой формат хранить ключи и значения в кипере.
Я подумал))) наконец)) пришел к вот такому, и мне кажется это верным) но почему-то данный код не хочет перезаписать значение уже существуещего ключа. хелп)
Ты можешь заставить этот код работать, дописав проверок и условий.
Ты можешь подумать, и упростить код до такой степени, что проблема будет решаться легко.
Аргументы в пользу упрощения. Этот код подозрительно похож на код работы с массивом. Увеличение индекса, добавление элемента в конец. Тут можно обойтись массивом, и думать в терминах массива, а не свойств объекта.
Аргументы в пользу исправления того что есть. Этот код ниже работает с индексами. Так что даже если в результате if(keys[i] == key) в acc будет 0, то условие if(acc){ не выполнится. А ты хотел бы чтобы оно выполнилось. Потому что нужно переписать ключ с нулевым индексом.
боже как я лоханулся с индексами) ну я думаю пока сделаю как смогу а потом переделаю по другому пути. потому что два дня а результата нету) боже мой я еще и написал if(acc)… даю жару сегодня… утал просто.