如何使用变量访问不同的对象?

时间:2017-11-07 07:26:02

标签: javascript node.js

我想从带有variable1的dictionnaries(用户输入的字典名称)中获取值(结果)。 请有人知道吗?我会帮助很多,因为我有超过300个词典。 干杯

app.get('/', function (req, res) {
    variable1=req.query['variable1']
    var dictionnary1 = {one:0.2187, two:0.1148};
    var dictionnary2 = {one:0.3257, two:0.1234};

function calculate(){
        result=variable1.one
}

计算()

1 个答案:

答案 0 :(得分:2)

(旁注:“词典”中只有一个'n'。我猜你已经将你的代码从另一种语言翻译成英语。我来回走动,但我认为这可能是最好的我在此答案的代码部分使用了你的拼写。)

将词典放在一个对象或Map中,并以词典名称作为键(在get回调之外执行一次):

// Object
var dictionnaries = {
    dictionnary1: {one:0.2187, two:0.1148},
    dictionnary2: {one:0.3257, two:0.1234}
};

// Map
var dictionaries = new Map([
    ["dictionnary1", {one:0.2187, two:0.1148}],
    ["dictionnary2", {one:0.3257, two:0.1234}]
]);

...然后在get回调中,使用variable1查找词典:

// Using an object
var dictionnary = dictionnaries[variable1];

// Using a Map
var dictionnary = dictionnaries.get(variable1);

...并将其作为参数传递给calculate

var result = calculate(dictionnary);

... calculate看起来像(我认为它比这更复杂):

function calculate(dictionnary) {
    return dictionnary.one;
}

,例如:

var dictionnaries = {
    dictionnary1: {one:0.2187, two:0.1148},
    dictionnary2: {one:0.3257, two:0.1234}
};

function calculate(dictionnary) {
    return dictionnary.one;
}

app.get('/', function (req, res) {
    var variable1 = req.query['variable1'];
    var dictionnary = dictionnaries[variable1];
    var result = calculate(dictionnary);
    // Use `result` in the response...
});