Цитата:
data[идентификатор] = {данные} Если такое свойство (идентификатор) уже есть в объекте data, то его данные заменится новыми, иначе в data будет добавлено новое свойство (идентификатор) с данными. Если есть необходимость узнать есть ли свойство (идентификатор) в объекте, то можно получить свойства объекта в массив и в нем проверить: if(~Object.keys(data).indexOf(свойство)) { //есть такое свойство у объекта } PS. Тут важен контекст понятия "узнать", можно ведь просто проверить что вернет обращение к свойству объекта, а не перебирать ключи. PS. А удалить свойство объекта - delete data[свойство] |
Подскажите еще такой вопрос. Я делаю ключь var key = tov_key+key_ves+key_name; alert(key); var tovar_list = {key:{ "tovar":"tovar_27", "price":"362" }}; И на выходе получаю key:{"tovar":"tovar_27","price":"362"} -- а надо чтобы key изменилось на то что я указывал а не названием переменной. И еще такой момент как я могу сжать key предположим он будет в длину 450 символов что и есть неудобно и превести его в единый формат типа Base64 или MD5 нашел статейки но так и не понял почему не работает |
Цитата:
Цитата:
Цитата:
$a = [ 'as' => 'value', 25 => 'value' ] Вопрос - можно ли кличи этого массива переименовать? |
Цитата:
Кстати, Base64, это скорее экспандер, а не сжиматель, так как результат будет в три раза длиннее исходного, а MD5, это хеш. |
Цитата:
|
Цитата:
|
Ну в общем вот массив который у меня формируется:
[ {"key":"16a3f79f7f1abc856e3a897ed5c71616","param":{"tip":"1","tip2":"tewer"}}, {"key":"1a79c7ebdb390269cca0d2675ef78204","param":{"tip":"1","tip2":"sik"}}, {"key":"83bec884740a900a86f06a0963f07e82","param":{"tip":"1","tip2":"anlo"}} ] Я за место Object.keys(data).indexOf пошел немного другим методом var val,param,num_s = 0; for (val of data) { num_s++; param = JSON.stringify(val); alert(param.key+' = '+num_s) } Если я пишу alert(param+' = '+num_s) то выводит каждую строку: [{"key":"83bec884740a900a86f06a0963f07e82","param":{"tip":"1","tip2":"anlo"}}] В интернете пересмотрел методы перебора массивов и там не описано более сложный формат В итоге я пробывал и так alert(param.key+' = '+num_s) И так alert(param[1]+' = '+num_s) И так alert(param[0].key+' = '+num_s) В итоге так и не могу вытащить нужный мне параметр "key" выдет постоянно "undefined" Как его правильно указать ? |
Так как вы представляете свои объекты через .... понятно что, поэтому и маетесь. Ну была мысль в правильном направлении - не массив, а объект объектов.
Что это вообще за хрень такая "key":"83bec884740a900a86f06a0963f07e82", то что вы и пытаетесь переименовать? Хрен с ним, переименовывайте, но у этой сущности тем более должен быть уникальный идентификатор, иначе она будет потеряна. for (val of data) { ... у вас массив объектов, и если перебирать циклом для поиска, то обычный for(var i=0; i< data.length; i++) { if(data[i].key == 'hash') { //что-то делаем break; } } |
Цитата:
Эта хрень и есть идентификатор, а точнее основные параметры товара переведены в MD5, я думаю что это сравнивать легче чем строку в 350 символов |
Цитата:
Некие ключи по параметрам, это уже иное, причем если товаров много, то гарантии того, что среди них нет с одинаковыми параметрами, а значит и уникальности таких ключей, нет и все ваше накроется медным тазом. ) |
Часовой пояс GMT +3, время: 08:18. |