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。
答案 0 :(得分:3)
存储在publicationTableIndexes中每个条目中的数据可能是使用没有.length属性的对象存储的。
SO5223涵盖了确定对象长度的“最佳”方式。
答案 1 :(得分:0)
听起来数组中的数据不是您期望的那样。我要做的就是获取萤火虫,并在你的循环之前放入以下内容
console.debug(publicationTableIndexes);
这将显示数组的全部内容,您可以看到其中的内容。