javascript - 一个数组数组,计算索引

时间:2009-09-04 18:34:58

标签: javascript

HI,

我正在看这段代码:

var length = 0;
for (recordId in publicationTableIndexes[sortColumnNumber]){
    length++;
}

我想知道是否有办法在没有循环的情况下获得相同的结果?

publicationTableIndexes是一个包含5个数组的数组。如果我尝试使用publicationTbleIndexes [sortColumnNumber] .length,我会得到undefined。

想法?

谢谢,罗恩。

好的,根据建议我做了一些测试并意识到子元素实际上是一个对象。构造代码:

function sortTableByCreatingIndex(table, sortingColumnNumber, sortOrder, superTable){
var length = 0;

//Length -1 due to the array doing an upwards comparison, if length not adjusted null object error.
length = table.length - 1;

for (recordId = 0; recordId <= length; recordId++){
    this[recordId] = recordId;
}

我实际上之前没有遇到'this'这个用法,并且对它非常感兴趣。我有兴趣知道如何将其取出并将其定义为数组。 “这个”是如何工作的,因为查看代码并不明显它从哪里得到它的值,有点像'魔术'它知道要引用什么对象。

谢谢,R。

2 个答案:

答案 0 :(得分:3)

存储在publicationTableIndexes中每个条目中的数据可能是使用没有.length属性的对象存储的。

SO5223涵盖了确定对象长度的“最佳”方式。

答案 1 :(得分:0)

听起来数组中的数据不是您期望的那样。我要做的就是获取萤火虫,并在你的循环之前放入以下内容

console.debug(publicationTableIndexes);

这将显示数组的全部内容,您可以看到其中的内容。