我有一个json对象r:
[ { "id" : "3443",
"name" : "Joe",
"date1" : "254",
"date4" : "261"
},
{ "id" : "50942",
"name" : "John",
"date2" : "192",
"date4" : "195"
},
{ "id" : "2524",
"name" : "Mary",
"date1" : "153",
"date4" : "163"
}
]
Run Code Online (Sandbox Code Playgroud)
我希望有一个Javascript For循环来完成dateX值.我知道X介于1和Max值之间.
但是以下代码不起作用:
for (j=1; j<=Max; j=j+1)
{
datestring = 'date' + j;
if (isset(r[i].datestring)) value[j] = r[i].datestring;
else value[j] = null;
}
Run Code Online (Sandbox Code Playgroud)
忘了解释我将isset函数定义为:
function isset(variable) {
return typeof(variable) != "undefined" && variable !== null;
}
Run Code Online (Sandbox Code Playgroud)
Ate*_*ral 10
首先使用普通的for循环遍历对象数组.然后迭代每个对象的属性for (var p in obj)并检查其值p.就像是:
for (var i = 0; i < arr.length; i++) {
var obj = arr[i];
for (var p in obj) {
if (/^date\d+$/.test(p)) {
var value = obj[p];
// p is a dateX property name and value is the value
}
}
}
Run Code Online (Sandbox Code Playgroud)
循环遍历所有可能的属性值以检查它们的存在是违反直觉和低效的.相反,循环实际属性并根据您的模式测试其名称.
| 归档时间: |
|
| 查看次数: |
3917 次 |
| 最近记录: |