Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 一次一个地前后循环数组?_Javascript_Arrays_Loops - Fatal编程技术网

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
??????