计算多维数组中的元素数量
2011-07-26
17577
我有此代码:
loadData : function(jsonArray) {
var id = $(this).attr("id");
for(var i in jsonArray) {
$("#"+id+" tbody").append('<tr class="entry-details page-1 entry-visible" id="entry-'+i+'"></tr>');
var header = {
1: "time",
2: "project",
3: "task"
}
var col = 1;
while(col <= jsonArray[i].length) {
$("#"+id+" tbody #entry-"+i).append("<td>"+jsonArray[i][header[col]]+"</td>")
col++
}}
它将采用类似于以下内容的 JSON 数组
{"1":{"project":"RobinsonMurphy","task":"Changing blog templates","time":"18\/07\/11 04:32PM"},"2":{"project":"Charli...
代码应循环遍历行(它确实如此),然后循环遍历数据列。
我面临的问题是为了将列数据放在正确的列中,我需要计算一行中返回的数据数量。我尝试了 jsonArray[i].length,但返回结果未定义。
如能提供任何帮助,我们将不胜感激
3个回答
您根本没有任何数组,只有对象。
要计算对象中的项目数,请创建一个简单的函数:
function countInObject(obj) {
var count = 0;
// iterate over properties, increment if a non-prototype property
for(var key in obj) if(obj.hasOwnProperty(key)) count++;
return count;
}
现在,您可以调用
countInObject(jsonArray[i])
。
pimvdb
2011-07-26
像这样:
Object.size = function(obj) {
var size = 0, key;
for (key in obj) {
if (obj.hasOwnProperty(key)) size++;
}
return size;
};
// Get the size of an object
var size = Object.size(myArray);
Eddie
2011-07-26
看一下那个小提琴: http://jsfiddle.net/Christophe/QFHC8/
键是
for (var j in jsonArray[i]) {
而不是
while (col <= jsonArray[i].length) {
ChristopheCVB
2011-07-26