Javascript 以json格式转换温度

Javascript 以json格式转换温度,javascript,jquery,json,Javascript,Jquery,Json,如何将input(动态变化)中的值放入json对象中,以将K转换为C?或者,如果我的想法不好,我应该如何写这样的转换 我的思维方式是(即K到C): var数量=[ { “名称”:“温度”, “属性”:[ { “name”:“kelvin”, “symbol”:“K”, “单位”:{ "K":1,, ‘C’:‘inputValue+273.15’, “F”:(输入值+459.67)*5/9” } }, { “名称”:“摄氏度”, ‘symbol’:‘C’, “单位”:{ 'K':'inputVa

如何将
input
(动态变化)中的值放入
json
对象中,以将
K
转换为
C
?或者,如果我的想法不好,我应该如何写这样的转换

我的思维方式是(即
K
C
):

var数量=[
{
“名称”:“温度”,
“属性”:[
{
“name”:“kelvin”,
“symbol”:“K”,
“单位”:{
"K":1,,
‘C’:‘inputValue+273.15’,
“F”:(输入值+459.67)*5/9”
}
},
{
“名称”:“摄氏度”,
‘symbol’:‘C’,
“单位”:{
'K':'inputValue-273.15',
"C":1,,
“F”:(输入值-32)*5/9”
}
},
{
'name':'Fahrenheit',
“符号”:“F”,
“单位”:{
“K”:“inputValue*9/5-459.67”,
‘C’:‘inputValue*9/5+32’,
“F”:1
}
}
]
}
]
var optionsIndex=$('select.from option:selected').index();
var-from=$('select.from-option:selected').val();
var to=$('select.to option:selected').val();
var fromSelectTypeValue=数量[0]。属性[optionsIndex]。单位[from];
var toSelectTypeValue=数量[0]。属性[optionsIndex]。单位[to];
var结果=从SelectTypeValue*到SelectTypeValue;
//fromSelectType=1(因为在第一个select元素中选择了K)
//toSelectTypeValue='inputValue+273.15'(因为在第二个select元素中选择了C)
var$inputs=$('.inputValue,select.from,select.to');
$inputs.on('keyup change',函数(){
$('.result').val(result);
});


开尔文 摄氏度 华氏的 开尔文 摄氏度 华氏的

你完全搞错了——你没有将你的值“动态地”放入你的JSON中,而是让你的javascript配置对象能够处理动态值

例如,对话应该是实际的函数,而不是这些函数的文本表示(很难安全地“执行”)

然后,假设您知道如何从对象中提取正确的函数,您只需执行该函数:

var kToC = quantities[0].properties[0].units.C; // assume you know how to look this up
var c = kToC(123); // execute the function (convert 123 k to c)

这完全是错误的——您没有将您的值“动态地”放入JSON中,而是使您的javascript配置对象能够处理动态值

例如,对话应该是实际的函数,而不是这些函数的文本表示(很难安全地“执行”)

然后,假设您知道如何从对象中提取正确的函数,您只需执行该函数:

var kToC = quantities[0].properties[0].units.C; // assume you know how to look this up
var c = kToC(123); // execute the function (convert 123 k to c)

SelectType的
不总是1吗?顺便说一句,这是沸腾到最后,是。。。只是说…顺便说一句,CodeReview可能是解决这个问题的更好的地方…这不适合代码审查,因为OP似乎在寻求关于如何做某事的帮助,与其要求对已经按预期运行的代码进行检查,除非这是用于进行多种类型的转换,否则您的做法过于简单complicated@nehel根据Jameic答案使用功能时不适用。需要完全不同的方法来引用实际javascript中包含的函数…或者使用
eval()
,这是一种糟糕的做法,因为安全性不是
来自SelectType
总是1吗?顺便说一句,这是沸腾到最后,是。。。只是说…顺便说一句,CodeReview可能是解决这个问题的更好的地方…这不适合代码审查,因为OP似乎在寻求关于如何做某事的帮助,与其要求对已经按预期运行的代码进行检查,除非这是用于进行多种类型的转换,否则您的做法过于简单complicated@nehel根据Jameic答案使用功能时不适用。将需要完全不同的方式来引用实际javascript中包含的函数…或者使用
eval()
,这是由于安全性而导致的错误做法啊,我不知道我可以将函数放在那里x)感谢您的解释。感激它。@nehel这就是为什么人们质疑这到底是一个JSON对象,还是一个普通的老javascript对象。在JSON中传递函数是不明智的,但是javascript对象可以存储任何东西。啊,我不知道我可以把函数放在那里(x)谢谢你的解释。感激它。@nehel这就是为什么人们质疑这到底是一个JSON对象,还是一个普通的老javascript对象。在JSON中传递函数没有合理的方法,但是javascript对象可以存储任何东西。