在Javascript中使用getter和setter的两个维度数组

时间:2015-05-21 09:14:22

标签: javascript arrays

目前我的代码看起来像这样

var person = [];
person["firstName"] = "John";
person["lastName"] = "Doe";

我想实现类似这样的东西

person[1]["firstName"] = "John";
person[1]["lastName"] = "Doe";

person[5]["firstName"] = "Tiger";
person[5]["lastName"] = "Din";

结构基于我的数据库产品ID

person[product_id]["firstName"] = val;

我希望能够通过调用此

来获取记录
Alert("Val is  " + person[5]["firstName"]);
如果我不从[0]开始我的数组,并从[1]跳到[5],那么它将会回显出Tiger的第一个名字,这样会好吗。

有没有办法可以在1个var语句中实现整个数组 并通过id

的值获取名字和姓氏的值
var person = [{id:1;firstName:John;lastName:doe},{id:2,firstName:Tiger;lastName:din;}];

感谢您的帮助!!

2 个答案:

答案 0 :(得分:0)

您可以拥有一个对象数组。你只需要以正确的方式定义它。在我在这里创建的函数中,您可以调用所需对象中的任何属性。我给出了3个如何使用它的例子。

var person = [{id:1,firstName:'John',lastName:'doe'},{id:2,firstName:'Tiger',lastName:'din'}];

function getVal(arr, where, get) {
    for (var i in arr) {
        for (var key in where) {
            if (arr[i][key] == where[key]) {
                if (get == 'fullName') 
                    return arr[i]['firstName'] + ' ' + arr[i]['lastName'];
                else 
                    return arr[i][get];
            }    
        }
    }
}

console.log(getVal(person, {'id':'2'}, 'firstName')); // Tiger
console.log(getVal(person, {'id':'2'}, 'fullName')); // Tiger din
console.log(getVal(person, {'firstName':'Tiger'}, 'id')); // 2

答案 1 :(得分:0)

有一条简单的出路:

来自你的对象:

//var person = {"id":{"fname":"fname_value","lname":"lname_value"}};

var person = {1:{"fname":"John","lname":"doe"},
              2:{"fname":"Tiger","lname":"din"}
             }
// You can Directly access them like:

alert(person[1]["fname"]);
alert(person["2"]["fname"]);