Javascript 一次一个地前后循环数组?
这是我的第一个问题,我希望在这里找到答案。 我有一个数组Javascript 一次一个地前后循环数组?,javascript,arrays,loops,Javascript,Arrays,Loops,这是我的第一个问题,我希望在这里找到答案。 我有一个数组 var arr = ['red', 'blue', 'black', 'green']; 我想循环遍历它,这样我就可以console.log()每次单击一个btn时都会返回一个元素,并一直跟踪索引,以便在单击另一个btn时可以反向迭代 nextBtn.addEventListener('click',nextItem) prevBtn.addEventListener('click',prevItem) 非常感谢您可以对索引进行闭包
var arr = ['red', 'blue', 'black', 'green'];
我想循环遍历它,这样我就可以console.log()
每次单击一个btn
时都会返回一个元素,并一直跟踪索引,以便在单击另一个btn时可以反向迭代
nextBtn.addEventListener('click',nextItem)
prevBtn.addEventListener('click',prevItem)
非常感谢您可以对索引进行闭包并返回一个对象,该对象带有获取数组下一个或上一个值的函数
var数组=[“红色”、“蓝色”、“黑色”、“绿色”],
指数=功能(i){
var out=document.getElementById('out');
out.innerHTML=数组[i];
返回{
prev:函数(){
我&&i--;
out.innerHTML=数组[i];
},
下一步:函数(){
i+1
prev-next
您可以对索引进行闭包,并返回一个对象,该对象具有获取数组的下一个或上一个值的函数
var数组=[“红色”、“蓝色”、“黑色”、“绿色”],
指数=功能(i){
var out=document.getElementById('out');
out.innerHTML=数组[i];
返回{
prev:函数(){
我&&i--;
out.innerHTML=数组[i];
},
下一步:函数(){
i+1
prev-next
在每个函数中,通过递增/递减跟踪当前位置的全局变量来获取数组中元素的当前索引。为了防止在数组上/下移动,您需要在每个数组中提供一个条件
var arr=[“红色”、“蓝色”、“黑色”、“绿色”];
var currentIndex=0;
var nextBtn=document.getElementById('nextBtn');
var prevBtn=document.getElementById('prevBtn');
nextBtn.addEventListener('click',nextItem);
prevBtn.addEventListener(“单击”,prevItem);
函数nextItem(){
if(currentIndex==(arr.length-1)){
返回;
}
console.log(
arr[++currentIndex]
);
}
函数previitem(){
如果(currentIndex==0){
返回;
}
console.log(
arr[--currentIndex]
);
}
Prev
接下来,在每个函数中,通过递增/递减一个跟踪当前位置的全局变量,获取数组中元素的当前索引。为了防止在数组上/下移动,您需要在每个数组中提供一个条件
var arr=[“红色”、“蓝色”、“黑色”、“绿色”];
var currentIndex=0;
var nextBtn=document.getElementById('nextBtn');
var prevBtn=document.getElementById('prevBtn');
nextBtn.addEventListener('click',nextItem);
prevBtn.addEventListener(“单击”,prevItem);
函数nextItem(){
if(currentIndex==(arr.length-1)){
返回;
}
console.log(
arr[++currentIndex]
);
}
函数previitem(){
如果(currentIndex==0){
返回;
}
console.log(
arr[--currentIndex]
);
}
Prev
接下来
你自己解释一下不?您有一个正在跟踪的索引。每次单击forward时,您都会将+1添加到索引和console.log(arr[index])返回按钮的代码>-1。如果您想避免跳出数组,您可以执行index=Math.max(index+1,arr.length-1)
,而在另一种情况下,您正在递减。我成功地实现了var I=-1
函数nextItem(){i+=1;if(i>arr.length-1){i=0;}console.log(arr[i]);}
但我不能倒过来。也许i-=1
???你自己解释一下不?您有一个正在跟踪的索引。每次单击forward时,您都会将+1添加到索引和console.log(arr[index])返回按钮的代码>-1。如果您想避免跳出数组,您可以执行index=Math.max(index+1,arr.length-1)
,而在另一种情况下,您正在递减。我成功地实现了var I=-1
函数nextItem(){i+=1;if(i>arr.length-1){i=0;}console.log(arr[i]);}
但我不能向后执行。可能i-=1
??????