请原谅我无法准确描述我追求的是什么。这种能力使得搜索答案变得非常困难,因此我现在要求。
我有一个对象(data.drivers),其中包含一堆圈数信息。
我正在遍历此对象以更新已显示的信息,但是希望压缩我的代码并能够循环遍历字段,而不是为每个可能的字段编写相同的代码。
问题是我不知道如何通过使用变量引用它来获取i的值。例如:
$.each(data.drivers, function(pos, i) {
var driver_position = i.position; // this and much more would happen for 9 fields
alert (driver_position);
});
这很有效。
但我想做的是:
$.each(data.drivers, function(pos, i) {
var fields = [ 'position', 'name', 'laps', 'lapTime', 'pace', 'difference', 'elapsedTime', 'fastLap', 'eqn' ];
$.each (fields, function (ii, field) {
alert (i.field);
});
});
答案 0 :(得分:1)
您正在寻找的是括号表示法:
alert(i[field]);
虽然使用一些更具描述性的变量名称有助于长期,但相当多。
答案 1 :(得分:1)
您也可以使用each
循环遍历属性。除非只有您需要的特定属性,否则您不需要该字段数组属性,即使这样您也可以在each
内处理它。
// Loop over array of driver objects
$.each(data.drivers, function(index, driver) {
// Loop over driver object properties
$.each(driver, function(key, value) {
// key is property name
// value is property value
});
});
文档:http://api.jquery.com/jquery.each/
通用迭代器函数,可用于无缝迭代 对象和数组。数组和数组类似的对象 重复长度属性(例如函数的参数对象) 按数字索引,从0到长度-1。其他对象通过迭代 他们的命名属性。