gpt4 book ai didi

javascript - javascript 中的关联数组

转载 作者:行者123 更新时间:2023-12-03 16:39:28 25 4
gpt4 key购买 nike

我有这个对象:

function formBuddy()
{
var fields = new Array();
var labels = new Array();
var rules = new Array();
var count=0;

this.addField = function(field, label, rule)
{
fields[count] = field;
labels[field] = label;
rules[field] = rule;
count = ++count;
}
}

它的用法是这样的:

var cForm=new formBuddy();
cForm.addField("c_first_name","First Name","required");
cForm.addField("c_last_name","Last Name","required");

问题是,在 addField() 函数中,fields 数组设置正确(可能是因为使用数字索引来引用它)但是其他 2 个数组(labelsrules)根本没有被触及。执行 console.log 在 firebug 中显示它们为空。

我需要更改什么才能使它们正常工作?我还是想通过字段的字符串索引来引用规则和标签。

最佳答案

改用对象:

function formBuddy()
{
var fields = {};
var labels = {};
var rules = {};
var count = 0;

this.addField = function(field, label, rule)
{
fields[count] = field;
labels[field] = label;
rules[field] = rule;
count++;
}
}

但是作为Christoph already mentioned ,我也会将这些信息存储在一个数据结构中。例如:

function formBuddy() {
var fields = {};
this.addField = function(name, label, rule) {
fields[name] = {
name: name,
label: label,
rule: rule
};
};
this.getField = function(name) {
return fields[name];
};
}

var cForm=new formBuddy();
cForm.addField("c_first_name","First Name","required");
cForm.addField("c_last_name","Last Name","required");
alert(cForm.getField("c_last_name").label);

关于javascript - javascript 中的关联数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/575480/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com