如果我有一个像这样的数组:
var msg = [ {name: ["a1", "a2"], value: "this is A"},
{name: ["b1", "b2"], value: "this is B"},
...
]
该数组包含客户端表单验证的全局错误消息。我已经成功地传递了错误的输入(例如“a1”),现在想知道如何从构造不良的数组中获取相应的消息。
问题
循环这个数组的最佳方法是什么?例如,如果我将“a1”作为参数传递到我的函数中,如何提取“this is A”作为相应的消息?
inArray 并没有真正的帮助,因为我需要相应的消息而不是 a1 的位置。我也不确定这是否是存储错误消息的最佳方式...欢迎提出想法!
感谢您的帮助!
最佳答案
重新排列数据结构:
var my_param = 'b1';
// This is an object, so we can have key/value pairs
var error_codes =
{
'a1': 0,
'a2': 0,
'b1': 1,
'b2': 1
};
// This is an array because we only need values
var error_messages =
[
'This is A',
'This is b'
];
alert(error_messages[error_codes[my_param]]);
这使得设置新的错误代码和消息变得非常容易,并且非常容易理解。唯一的问题是 error_codes[my_param]
- 它是一个对象,但我们不能这样做 error_codes.my_param
因为它会查找名为“my_param”的元素,所以使用数组表示法,我们可以查找对象键。
唯一的其他潜在陷阱是确保您没有任何尾随逗号:
var error_codes = { 'a1': 1, }; // NO!
也称为 trailing comma of death !
关于javascript - 如何使用 jquery 循环遍历具有嵌套对象的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9321365/