下面是代碼詞典缺失值
converter =
{
'SIToImperial' :
{
'cm' : function(value) {return value * convertRatioImperial[0];},
'm' : function(value) {return value * convertRatioImperial[1];},
'km' : function(value) {return value * convertRatioImperial[2];},
'g' : function(value) {return value * convertRatioImperial[3];},
'kg' : function(value) {return value * convertRatioImperial[4];},
't' : function(value) {return value * convertRatioImperial[5];},
'mL' : function(value) {return value * convertRatioImperial[6];},
'L' : function(value) {return value * convertRatioImperial[7];},
'm3' : function(value) {return value * convertRatioImperial[8];},
'kWh' : function(value) {return value;},
'nb' : function(value) {return value;},
'undefined': function(value) {return 'Not Found';}
}
}
很顯然,我行「未定義」 ....不喜歡的工作,我希望它。
我想,當轉換器[「SIToImperial」] [單位]與'單位'未列在屬性中調用。例如:converter [「Sito'mperial」] ['oz']。 它應該返回未定義的行'未找到'。
有人能幫助我嗎我已經嘗試了各種方法,但我仍然不足以熟悉字典以使其正常工作。
更新:
//Generalized conversion function
function convert(value,valueUnit,system, toSI)
{
var result;
//From SI to Imp/U
if(!toSI)
{
result = converter.guardian('SITo'+system,valueUnit,value);
}
else if(toSI)//To SI from Imp/US
{
result = converter.guardian(system+'ToSI',valueUnit,value);
}
return result;
};
和
converter =
{
guardian : function (system,units,value) {var label = this[system][units]; if(typeof(label) === 'undefined') {return "Not Found";} else {return label(value);}},
'SIToImperial' :
{
'cm' : function(value) {return value * convertRatioImperial[0];},
'm' : function(value) {return value * convertRatioImperial[1];},
'km' : function(value) {return value * convertRatioImperial[2];},
'g' : function(value) {return value * convertRatioImperial[3];},
'kg' : function(value) {return value * convertRatioImperial[4];},
't' : function(value) {return value * convertRatioImperial[5];},
'mL' : function(value) {return value * convertRatioImperial[6];},
'L' : function(value) {return value * convertRatioImperial[7];},
'm3' : function(value) {return value * convertRatioImperial[8];},
'kWh' : function(value) {return value;},
'nb' : function(value) {return value;}
}
}
你爲什麼不使SIToImperial函數的類型以此爲參數,使用功能 - 它甚至更有意義調用converter.SIToImperial(「CM」 ,2)然後轉換器['SIToImperial'] ['cm'](2)或converter.SIToImperial ['cm'](2)或converter.SIToImperial.cm(2) – Hurda
我有一個包裝功能,因爲我從視圖到模型以及從模型到視圖的換行。當我打電話給包裝它看起來像這樣 convertToView(值,單位)或convertToModel(值,單位) – Fawar