Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.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 具有重复数组项的inarray_Javascript_Jquery - Fatal编程技术网

Javascript 具有重复数组项的inarray

Javascript 具有重复数组项的inarray,javascript,jquery,Javascript,Jquery,我使用以下代码从数组中查找下一个数组项: var srcKpi=[1,2,3,4,5,6]; var value=2; var nextitem = srcKpi[($.inArray(value, srcKpi) + 1) % srcKpi.length]; console.log(nextitem) // 3 当数组中没有重复项时,它可以正常工作。当我尝试在数组中使用重复项时,我只得到第一个出现元素,而不是实际出现的元素。我想获取下一个具有特定值的数组项 var srcKpi=[1,2,3

我使用以下代码从数组中查找下一个数组项:

var srcKpi=[1,2,3,4,5,6];
var value=2;
var nextitem = srcKpi[($.inArray(value, srcKpi) + 1) % srcKpi.length];
console.log(nextitem) // 3
当数组中没有重复项时,它可以正常工作。当我尝试在数组中使用重复项时,我只得到第一个出现元素,而不是实际出现的元素。我想获取下一个具有特定值的数组项

var srcKpi=[1,2,3,1,5,6];
var value=1;
var nextitem = srcKpi[($.inArray(value, srcKpi) + 1) % srcKpi.length];
console.log(nextitem) // 2
当我将其放入循环以获取下一个值时,每次仅获取
2
。 我从未得到值“5”。 当数组中存在重复项时,我获取特定元素的下一个元素的错误是什么?
有关更多信息:jsfiddle:

您可以在此处实现阵列
原型

Array.prototype.current = 0;

var Current = Array.prototype.current;
Array.prototype.next = function() {
    if (!((this.current + 1) in this)) return false;
    return this[++this.current];
};
Array.prototype.prev = function() {
    return this[--this.current];
};

var srcKpi=[1,2,3,1,5,6];
for(Current ===0;Current<srcKpi.length;Current++)
console.log(srcKpi.next());
请参见此处的工作解决方案:

请记住使用js运行
,并在浏览器控制台中查看解决方案


如果需要,还可以查找
prev
元素。

inArray()
支持第三个参数来指定
fromIndex
——在本例中,这是您需要的。第二个示例中的预期输出是什么?因此输出应该是
[2,5]
?为什么不循环一个比较呢?请找到JSFIDLE链接“这需要一个数组原型的实现”不,你不需要它。正如techfoobar已经指出的那样,只需将第三个参数传递给
$。inArray
也可以。@FelixKling:可能我的措辞是错误的,我会更改它。但我更喜欢
proto
处理。因此,我的答案是:
Current
变量应该做什么?
Current
给出数组的当前索引,并使用
Current
在数组中循环,直到到达最后一个元素。
2 
3
1 
5 
6 
false