JSON спецсимволы в имени ключа
Объявляю объект таким образом:
var db={ "2|0":"5.3", "1|1":"22.7" }; Далее мне необходимо получать значения по ключу и кое-что математически с ними делать. Не работает. Выдает NAN. Я подозреваю, что нельзя использовать цифры(спецсимволы) в названии ключа. Если это так, как бы это обойти по-проще? Спасибо. |
psixojoker,
Работает. var db={ "2|0":"5.3", "1|1":"22.7" }; alert(db["2|0"]); // 5.3 alert(db["1|1"]); // 22.7 А выдает NAN потому что вы объявляете строки, а не числа. var obj = { "prop1": "5.3", //если так объявить, то это строка "prop2": 5.3 //а это уже число }; Если нужно преобразовать сторку в число, то используйте методы: parseFloat и parseInt. |
Я наверное не совсем корректно сформулировал.
Основная проблема в том, что значение нужного мне ключа, находится в другой переменной. var a="2|0"; var data=db[a]; Так вот data - имеет тип undefined. |
гониш
var db={ "2|0":"5.3", "1|1":"22.7" }; var a="2|0"; var b="1|1"; alert(db[a]); alert(db[b]); проблема скорее в переменной с ключом или там где ты оный формируешь |
хммм..возможно действительно, я как-то не так формирую эту переменную?
a=$(this).attr('name').match(/\d|\d/).toString(); через alert она отображается. однако вставляя её в виде ключа, получаю undefined. |
Часовой пояс GMT +3, время: 05:40. |