Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 03.07.2017, 15:31
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 11,390

Сообщение от biryukovm
перезапись
Просто записываем значение свойства:

data[идентификатор] = {данные}

Если такое свойство (идентификатор) уже есть в объекте data, то его данные заменится новыми, иначе в data будет добавлено новое свойство (идентификатор) с данными.

Если есть необходимость узнать есть ли свойство (идентификатор) в объекте, то можно получить свойства объекта в массив и в нем проверить:

if(~Object.keys(data).indexOf(свойство)) {
    //есть такое свойство у объекта
}


PS. Тут важен контекст понятия "узнать", можно ведь просто проверить что вернет обращение к свойству объекта, а не перебирать ключи.

PS. А удалить свойство объекта - delete data[свойство]

Последний раз редактировалось laimas, 03.07.2017 в 15:38.
Ответить с цитированием
  #22 (permalink)  
Старый 03.07.2017, 18:33
Кандидат Javascript-наук
Отправить личное сообщение для biryukovm Посмотреть профиль Найти все сообщения от biryukovm
 
Регистрация: 13.12.2013
Сообщений: 105



Подскажите еще такой вопрос.
Я делаю ключь

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 нашел статейки но так и не понял почему не работает
Ответить с цитированием
  #23 (permalink)  
Старый 03.07.2017, 18:38
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 11,390

Сообщение от biryukovm
Я делаю ключь
Ключ, а не ключь, чай не блондинка.

Сообщение от biryukovm
var key = tov_key+key_ves+key_name
Это что?

Сообщение от biryukovm
а надо чтобы key изменилось на то что я указывал а не названием переменной
Вы говорили, что в РНР разбираетесь. Тогда чтобы понятней было, будем оперировать им. У вас есть массив:

$a = [
     'as' => 'value',
     25  => 'value'
]


Вопрос - можно ли кличи этого массива переименовать?
Ответить с цитированием
  #24 (permalink)  
Старый 03.07.2017, 18:47
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 11,390

Сообщение от biryukovm
я могу сжать key предположим он будет в длину 450 символов что и есть неудобно и превести его в единый формат типа Base64 или MD5
Хрен знает что вы там делаете, поэтому даже не понимаю о чем речь, но если до такого дошло, то это нечто. )

Кстати, Base64, это скорее экспандер, а не сжиматель, так как результат будет в три раза длиннее исходного, а MD5, это хеш.
Ответить с цитированием
  #25 (permalink)  
Старый 03.07.2017, 22:03
Кандидат Javascript-наук
Отправить личное сообщение для biryukovm Посмотреть профиль Найти все сообщения от biryukovm
 
Регистрация: 13.12.2013
Сообщений: 105

Сообщение от laimas Посмотреть сообщение
Хрен знает что вы там делаете, поэтому даже не понимаю о чем речь, но если до такого дошло, то это нечто. )

Кстати, Base64, это скорее экспандер, а не сжиматель, так как результат будет в три раза длиннее исходного, а MD5, это хеш.
Тут все по серьезному только для взрослых
Ответить с цитированием
  #26 (permalink)  
Старый 03.07.2017, 22:21
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 11,390

Сообщение от biryukovm
Тут все по серьезному только для взрослых
Глупости все это, хотя хрен знает чего вы там изобретаете. Но сам вопрос "как переименовать свойство" наводит на мысли нехорошие, чего-то не то и не так делается. )
Ответить с цитированием
  #27 (permalink)  
Старый 04.07.2017, 07:51
Кандидат Javascript-наук
Отправить личное сообщение для biryukovm Посмотреть профиль Найти все сообщения от biryukovm
 
Регистрация: 13.12.2013
Сообщений: 105

Ну в общем вот массив который у меня формируется:
[
{"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"
Как его правильно указать ?

Последний раз редактировалось biryukovm, 04.07.2017 в 07:56.
Ответить с цитированием
  #28 (permalink)  
Старый 04.07.2017, 08:10
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 11,390

Так как вы представляете свои объекты через .... понятно что, поэтому и маетесь. Ну была мысль в правильном направлении - не массив, а объект объектов.

Что это вообще за хрень такая "key":"83bec884740a900a86f06a0963f07e82", то что вы и пытаетесь переименовать? Хрен с ним, переименовывайте, но у этой сущности тем более должен быть уникальный идентификатор, иначе она будет потеряна.

for (val of data) { ... у вас массив объектов, и если перебирать циклом для поиска, то обычный
for(var i=0; i< data.length; i++) {
    if(data[i].key == 'hash') {
        //что-то делаем
        break;
    }
}
Ответить с цитированием
  #29 (permalink)  
Старый 04.07.2017, 08:15
Кандидат Javascript-наук
Отправить личное сообщение для biryukovm Посмотреть профиль Найти все сообщения от biryukovm
 
Регистрация: 13.12.2013
Сообщений: 105

Сообщение от laimas Посмотреть сообщение
Что это вообще за хрень такая "key":"83bec884740a900a86f06a0963f07e82", то что вы и пытаетесь переименовать? Хрен с ним, переименовывайте, но у этой сущности тем более должен быть уникальный идентификатор, иначе она будет потеряна.

Эта хрень и есть идентификатор, а точнее основные параметры товара переведены в MD5, я думаю что это сравнивать легче чем строку в 350 символов
Ответить с цитированием
  #30 (permalink)  
Старый 04.07.2017, 08:23
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 11,390

Сообщение от biryukovm
Эта хрень и есть идентификатор, а точнее основные параметры товара переведены в MD5
Вообще охренеть. Идентификатор по параметрам товара? Это нечто. Идентификатор сущности в базе, это некое уникальное значение, которое может быть сформировано средствами SQL автоматически при добавлении сущности в базу. Делается это просто - полем типа INT с первичным ключом и автоикрементом.

Некие ключи по параметрам, это уже иное, причем если товаров много, то гарантии того, что среди них нет с одинаковыми параметрами, а значит и уникальности таких ключей, нет и все ваше накроется медным тазом. )
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод JSON Объекта из localStorage Философ Общие вопросы Javascript 36 12.09.2015 12:32
Удаление / добавление JSON Alexander Belov Events/DOM/Window 16 02.05.2015 00:51
Не могу распарсить JSON. gorenie jQuery 3 29.11.2013 21:26
JSON или JSONP для запросов на другой сервер? Метод GET, для длинных сообщений? Kotakota jQuery 5 23.08.2011 23:12
jQuery. Обработка ошибок и JSON. mma_mma jQuery 3 19.07.2010 12:10