在 javascript 中将数组索引作为参数传递
Passing array index as argument in javascript
我有一段代码如下。
var aMessages = new Array();
aMessages["gender"] = new Array();
aMessages["gender"]["blank"] = new Array();
aMessages["gender"]["blank"]["Default"] = "Please select the gender of the person being registered on the site.";
aMessages["gender"]["blank"]["Self"] = "Please select your gender.";
aMessages["gender"]["blank"]["Son"] = "Gender of the member is required for registration.";
aMessages["gender"]["blank"]["Daughter"] = "Gender of the member is required for registration.";
aMessages["gender"]["blank"]["Brother"] = "Gender of the member is required for registration.";
aMessages["gender"]["blank"]["Sister"] = "Gender of the member is required for registration.";
aMessages["gender"]["blank"]["Friend"] = "Please select your friend's gender.";
aMessages["gender"]["blank"]["Relative"] = "Please select your relative's gender.";
aMessages["gender"]["invalid"] = "Please choose relevant gender.";
function displayMessage(field, errorCase){
console.log(errorCase, field, "here");
console.log(aMessages[field][errorCase]);
}
err = 'invalid';
displayMessage("gender", err);
所以我将字段和错误案例传递给函数,函数做一些事情,现在让我们假设它打印消息。对于一个级别来说很好,即 gender (field) -> err (errorcase)
.但是如何在参数中传递索引的索引。
是否有任何解决方法。还建议任何其他好的选择。
最灵活的方法是使用参数,如以下问题所述:JavaScript 可变数量的参数来函数。
但是,常见的 JavaScript 做法是使用对象文字,以提高可读性,也不必担心参数的顺序。 你可以在jQuery UI API中看到很多这样的例子,比如这个:.effect(选项)。
这是一个开始(jsfiddle):
function displayMessage(field, errorCase) {
if (typeof errorCase === "string") {
console.log(errorCase, field, "here");
console.log(aMessages[field][errorCase]);
} else {
// You should ensure the errorCase object literal has these properties before accessing them
console.log(errorCase.err, field, "there");
console.log(errorCase.relation, field, "there again");
console.log(aMessages[field][errorCase.err][errorCase.relation]);
}
}
displayMessage("gender", {
err: "blank",
relation: "Sister"
});
这提供了你想要的东西?
var aMessages = new Array();
aMessages["gender"] = new Array();
aMessages["gender"]["blank"] = new Array();
aMessages["gender"]["blank"]["Default"] = "Please select the gender of the person being registered on the site.";
aMessages["gender"]["blank"]["Self"] = "Please select your gender.";
aMessages["gender"]["blank"]["Son"] = "Gender of the member is required for registration.";
aMessages["gender"]["blank"]["Daughter"] = "Gender of the member is required for registration.";
aMessages["gender"]["blank"]["Brother"] = "Gender of the member is required for registration.";
aMessages["gender"]["blank"]["Sister"] = "Gender of the member is required for registration.";
aMessages["gender"]["blank"]["Friend"] = "Please select your friend's gender.";
aMessages["gender"]["blank"]["Relative"] = "Please select your relative's gender.";
aMessages["gender"]["invalid"] = "Please choose relevant gender.";
function displayMessage(field, errorCase){
console.log(errorCase, field, "here");
var argc = arguments.length;
if(argc >= 3) {
console.log(aMessages[field][errorCase][arguments[2]]);
}
else {
console.log(aMessages[field][errorCase]);
}
}
err = 'invalid';
displayMessage("gender", err);
err = 'blank';
displayMessage("gender", err, "Daughter");
相关文章:
- 函数未将值作为参数传递
- 如何将参数传递到angularJs中的工厂
- 如何在HTML元素上创建函数,而不是将元素作为参数传递
- JavaScript常量-作为参数传递或直接使用
- 如何将javascript对象作为参数传递到c#web服务中
- 将参数传递给函数
- 如何将Gruntfile.js中的参数传递到webdriverio规范
- javascript,将参数传递给函数内部的闭包中的回调
- Javascript-将包含变量的html字符串作为参数传递
- 将字符串作为参数传递给函数onclick event jquery
- 将修改后的数组作为参数传递给函数
- 在嵌套递归指令中将参数传递给父控制器方法
- each()-将额外的参数传递给回调参数
- 代码气味-将布尔控制参数传递给函数
- 如何将自定义参数传递到FullCalendar事件提要
- 将参数传递给函数,同时保留事件处理程序
- 将图标作为参数传递不会;t工作-谷歌地图
- 如何使用按钮将参数传递给函数
- 在 javascript 中将数组索引作为参数传递
- 选择索引已更改,未将参数传递到 Web 部件连接