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, время: 08:57. |