从2个javascript变量中选择值

时间:2010-08-02 09:10:53

标签: javascript function variables

我有2个javascript变量:

var list1 = "john doe|bill williams|poll bregg|michael jordan";
var list2 = "analytic|trader|doctor|athlete";

我们必须记住,这两个变量之间的关系是名称和职业以相同的顺序排列,例如。民意调查bregg是一名医生,但约翰·多伊是一名分析师。

我需要创建一个函数,它将根据第一个变量选择值给出第二个变量值。例如:

function getProfession(name){
    ...
    return profession;
}

您能提出解决方案或提供线索吗?! 也许我必须像这样使用数组或smth数组?!

6 个答案:

答案 0 :(得分:2)

您可能会发现使用JavaScript对象的哈希表特性更容易:

var professions = {};              // our hashtable

var list1 = "john doe|bill williams|poll bregg|michael jordan".split('|');
var list2 = "analytic|trader|doctor|athlete".split('|');

for (var i = 0; i < list1.length; i++) {
   professions[list1[i]] = list2[i];
}

然后你可以使用下标语法来获得专业:

alert(professions['john doe']);    // returns "analytic"

答案 1 :(得分:1)

var persons = {};
var list1 = "john doe|bill williams|poll bregg|michael jordan".split("|");
var list2 = "analytic|trader|doctor|athlete".split("|");
for (var i in list1) {
    persons[list1[i]] = list2[i];
}

function getProfession(name) {
    return persons[name];
}

答案 2 :(得分:1)

你可以这样做,使用split和indexOf Javascript函数:

var list1 = "john doe|bill williams|poll bregg|michael jordan";
var list2 = "analytic|trader|doctor|athlete";

var names = list1.split("|");
var professions = list2.split("|");

function getProfession(name){
    var index = names.indexOf(name);

    return professions[index];
}

alert(getProfession('poll bregg'));

完整示例:http://jsfiddle.net/zQXjd/

答案 3 :(得分:1)

代码可能是这样的。

var list1 = "john doe|bill williams|poll bregg|michael jordan";
var list2 = "analytic|trader|doctor|athlete";
var name_array=new Array();
var profession_array=new Array();
name_array=list1.split("|");    
profession_array=list2.split("|");    
function getProfession(name)    
{
    for (i=0;i<name_array.length;i++)
    {
        if(name==name_array[i])
        {
             return profession_array[i];
        }
    }
    return "Not in list";    
}

如果只有数据采用指定格式,则可以使用代码。

答案 4 :(得分:0)

最好像这样使用数组:

var persons = new Array();
persons[0] = new Array();
persons[0]["name"] = "John Doe";
persons[0]["proffesion"] = "Analytic";
persons[1] = new Array();
persons[1]["name"] = "Bill Williams";
persons[1]["proffesion"] = "Trader";
etc...

并且你可以像普通数组一样迭代它:

for(i in persons)
   alert(persons[i]["name"]+" - "+persons[i]["proffesion"]);

答案 5 :(得分:0)

您可以使用一个对象来获取您的功能,而不是2变量 -

var profession = { "john doe" : "analytic",
           "bill williams" : "trader",
           "poll bregg" : "doctor",
           "michael jordan" : "athlete"
         };

然后在功能中你可以使用它作为 -

function getProfession(name) {  
    return profession[name];

}

从维护的角度来看,您也可以更轻松地添加新元素并删除现有元素。