我有这段代码:
//var data.name is declared somewhere else, e.g. "Sherlock". It changes often.
recents[recents.length] = data.name;
idThis = "recent" + recents.length;
if(recents.length >= 7) {
recents[0]=recents[7];
recents[1]=recents[8];
recents[2]=recents[9];
recents[3]=recents[10];
recents[4]=recents[11];
recents[5]=recents[12];
recents[6]=recents[13];
recents[7]=recents[14];
recents[0]=recents[15];
recents[1]=recents[16];
recents[2]=recents[17];
//etc
idThis = "recent" + (recents.length -7);
}
document.getElementById(idThis).innerHTML = data.name;
我的问题是如何使
recents[0]=recents[7] recents[1]=recents[8]
等自动化?关键是
recent
id不能大于6,否则其余代码将不起作用。 最佳答案
在我看来,您想要从原始数组中获取slice。我不确定您要哪个 slice ,但是这里是如何获取前8个项目和后8个项目的方法,也许其中之一就是您想要的:
// Get the first 8 items from recents.
var first8 = recents.slice(0, 8);
// Get the last 8 items from recents.
var last8 = recents.slice(-8);
// first8 and last8 now contain UP TO 8 items each.
当然,如果您的
recents
数组没有8个项目,则slice
的结果将少于8个项目。如果要删除
recents
数组中的范围,可以使用 splice
:// Delete the first 8 items of recents.
recents.splice(0, 8);
// recents[0] is now effectively the value of the former recents[8] (and so on)
您还可以使用
splice
的返回值来获取已删除的项目:// Delete and get the first 8 items of recents.
var deletedItems = recents.splice(0, 8);
// You could now add them to the end, for example:
recents = recents.concat(deletedItems);
关于javascript - javascript数组重新开始计数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30171868/