将属性分配给数组js / jquery中的值

时间:2014-04-28 17:42:57

标签: javascript jquery arrays

在我的脚本中,函数使用teststim数组中的值。

var teststim =  ["A", "B", "C"]

我想提供'属性'对于这些值,例如A具有属性" name",B" birthday",...

我需要找到一种方法来访问这些属性。我想到了这样的事情:

var teststim = {content: "A", attribute: "name"}, 
               {content: "B", attribute: "birthday"}, 
               {content: "C", attribute: "whatever"}

也许我比我想的更接近,但我无法访问'属性'对应于内容值的值。我错过了什么?

3 个答案:

答案 0 :(得分:2)

您需要一组对象:

var teststim = [{content: "A", attribute: "name"}, 
                {content: "B", attribute: "birthday"}, 
                {content: "C", attribute: "whatever"}];

for (var i=0; i<teststim.length; i++) {
    var obj = teststim[i];
    if (obj.content=='C') {
        alert(obj.attribute); // "whatever"
    };
};

答案 1 :(得分:1)

您无法为您的数组的值提供属性/属性。 因此,您必须从:

开始
var arr = [
   {content:'A'},
   {content:'B'},
   {content:'C'}
];

现在您可以添加新属性,例如:

arr[0].attribute = '2';

答案 2 :(得分:0)

如果要将数组中的值映射到另一个(更长?)值,可以使用:

var mapping = {"A" : "name", 
               "B" : "birthday", 
               "C" : "whatever"}


for(var i = 0, len = teststim.length; i < len; i++)
{
    alert(mapping[teststim[i]]);
}

如果没有,那么只需要一个对象数组:

var teststim = [{ 'content' : "A", 'attribute' : "name" }, 
                { 'content' : "B", 'attribute' : "birthday" }, 
                { 'content' : "C", 'attribute' : "whatever" }];


for(var i = 0, len = teststim.length; i < len; i++)
{
    alert(teststim[i].attribute);
}