【发布时间】:2015-08-23 15:19:10
【问题描述】:
我有一个数组items。我需要确保在循环的当前迭代中我可以安全地调用数组的下一项
for(var i = 0; i < items.length; ++i) {
// do some stuff with current index e.g....
item = items[i];
// then do something with item @ i+1
if(items[i+1]) {
//do stuff
}
}
这是如何完成的,或者如果不是如何/什么是更好的方法?
附:我不想做绑定检查
【问题讨论】:
-
最好的方法是将
i < items.length替换为i < items.length-1。然后,您可以在循环中安全地调用items[i+1]。 -
@blex 这应该是一个答案
-
@meagar 我不想将其发布为答案,但如果您认为值得,请这样做;)
-
@blex 谢谢这是一个巧妙的技巧......但是
if(items[i+1])可以被认为是安全的吗? -
if(items[i+1])不是很安全,例如,如果您的数组包含任何 falsey 值,例如false、""或0(您的条件不会被满足,if语句将不会被执行)。检查索引i+1处有元素的更好方法是执行if(i<items.length-1)。
标签: javascript qml