带名字的JavaScript字典

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (9)

我想在JavaScript中创建一个字典,如下所示:

myMappings = [
{ "Name":10%},
{ "Phone":10%},
{ "Address":50%},
{ "Zip":10%},
{ "Comments":20%}
]

我想稍后填充一个html表格,并希望将表格的标题设置为myMappings的第一列,将列的宽度设置为第二列。由于我是JS新手,无法找到干净的方式。有些人可以建议吗?

提问于
用户回答回答于

我看到你遇到的主要问题是很难循环,填充表格。

只需使用一组数组:

var myMappings = [
    ["Name", "10%"], // Note the quotes around "10%"
    ["Phone", "10%"],
    // etc..
];

...这简化了访问:

myMappings[0][0]; // column name
myMappings[0][1]; // column width

或者:

var myMappings = {
    names: ["Name", "Phone", etc...],
    widths: ["10%", "10%", etc...]
};

并访问:

myMappings.names[0];
myMappings.widths[0];
用户回答回答于

另一种方法是创建一个对象数组,每个对象拥有一列的属性。这稍微改变了“myMappings”的结构,但可以轻松处理:

var myMappings = [
    { title: "Name", width: "10%" },
    { title: "Phone", width: "10%" },
    { title: "Address", width: "50%" },
    { title: "Zip", width: "10%" },
    { title: "Comments", width: "20%" }
];

然后你可以用for循环很容易地遍历所有的“列”:

for (var i = 0; i < myMappings.length; i += 1) {
    // myMappings[i].title ...
    // myMappings[i].width ...
}

扫码关注云+社区