到目前为止,通过使用下面的代码列出数组中的最后五个项目,但是当数组长度仅为1时,它开始导致问题。虽然数组中只有一个项目,但我可以对它进行一些调整吗?所以它不会循环吗?
$(function() {
$.getJSON("#myURL", function(getStressTestErrorInfo2) {
if (getStressTestErrorInfo2.length >= 1) {
var len = getStressTestErrorInfo2.length - 5;
var data = getStressTestErrorInfo2;
var txt = "";
if (data.length - 1 !== undefined) {
for (var i = len; i < len + 5; i++) {
// dynamically generating a table-row for appending in the table.
txt += "<tr><td>" + data[i].AlarmNo + "</td><td>" + data[i].AlarmCnt + "</td><td>" + data[i].StresstestId + "</td><td>" + data[i].StresstestRunId + "</td><td>" + data[i].Name + "</td><td>" + data[i].StackTrace + "</td><td>" + data[i].Timestamp + "</td></tr>";
}
if (txt != "") {
// #table is the selector for the table element in the html
$("#listErrorsTest2").append(txt);
}
}
};
});
});
答案 0 :(得分:2)
更改此行:
if (getStressTestErrorInfo2.length >= 1) {
为:
if (getStressTestErrorInfo2.length >= 5) {
这样,如果长度低于5,它就不会启动该功能。
答案 1 :(得分:2)
您遇到的问题是,无论数组的大小如何,您都需要使用大小并将5减去它。允许你采取数组的最后5个单元格...足够长。如果长度低于5,则索引将为负数。
现在,如果您想获得较小数组的值,则无法简单地更新条件。
如果索引是否定的,您可以简单地将索引设置为0:
var len = getStressTestErrorInfo2.length - 5;
if (len < 0) len = 0; //Array with less than 5 values.
然后循环直到你到达终点
while(len < getStressTestErrorInfo2.length){ ... }
答案 2 :(得分:1)
我在乞讨时的做法有一些(愚蠢的)缺陷。我没有显示最后5个项目,而是颠倒了数组并列出了前五个并添加了条件
if (len > 5) len = 5;
所以它成功了。
$(function() {
$.getJSON("#myURL", function(getStressTestErrorInfo0) {
if (getStressTestErrorInfo0.length >= 1) {
var data = getStressTestErrorInfo0;
/*Function to reverse the array*/
function reverseArr(input) {
var ret = new Array;
for (var i = input.length - 1; i >= 0; i--) {
ret.push(input[i]);
}
return ret;
}
var reverseData = reverseArr(data);
var len = getStressTestErrorInfo0.length;
var data = getStressTestErrorInfo0;
var txt = "";
if (len > 0) {
if (len > 5) len = 5;
for (var i = 0; i < len; i++) {
// dynamically generating a table-row for appending in the table.
txt += "<tr><td>" + reverseData[i].AlarmNo + "</td><td>" + reverseData[i].AlarmCnt + "</td><td>" + reverseData[i].StresstestId + "</td><td>" + reverseData[i].StresstestRunId + "</td><td>" + reverseData[i].Name + "</td><td>" + reverseData[i].StackTrace + "</td><td>" + reverseData[i].Timestamp + "</td></tr>";
}
if (txt != "") {
//selector for the table element in the html
$("#listErrors").append(txt);
}
}
};
});
});