Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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 重置数组是从array.forEach中断的有效方法吗?_Javascript_Arrays - Fatal编程技术网

Javascript 重置数组是从array.forEach中断的有效方法吗?

Javascript 重置数组是从array.forEach中断的有效方法吗?,javascript,arrays,Javascript,Arrays,我在寻找一个简单的方法来摆脱forEach。这个答案提到使用some方法,但这并没有给出当前元素的索引: 我发现将数组设置为false将中断forEach“循环”。这是有效的还是非法的?如果您的意思是将其.length设置为迭代中的当前索引,那么是的,它是“有效的”,但请注意,这样做是在清除该点之前的所有数组成员 var arr = ["foo","bar","baz"]; console.log(arr.length); // 3 arr.forEach(function(v, i) {

我在寻找一个简单的方法来摆脱forEach。这个答案提到使用some方法,但这并没有给出当前元素的索引:


我发现将数组设置为false将中断forEach“循环”。这是有效的还是非法的?

如果您的意思是将其
.length
设置为迭代中的当前索引,那么是的,它是“有效的”,但请注意,这样做是在清除该点之前的所有数组成员

var arr = ["foo","bar","baz"];

console.log(arr.length); // 3

arr.forEach(function(v, i) {
    if (i == 1)
        arr.length = i;
    else 
        console.log(v);
});

console.log(arr.length); // 1
如果将
.length
设置为
false
,则实际上是将其设置为
0
,因此清除整个数组

使用
。一些
。每一个
对我来说似乎更明智


我应该注意,迭代不一定会停止,但不会调用回调,因为本机
.forEach()
不会为不存在的属性调用回调。根据规范,缓存中的长度为


这可以通过在迭代过程中扩展阵列来测试。添加的成员永远不会到达。

根据文档,当前元素的索引作为第二个参数传递给回调函数:

语法:array.some(回调[,thisObject])


更重要的是

是否有任何原因使您不能以正常方式进行操作:

var matchIndex = -1;
for (i = 0; i < someArray.length; i++) {
    if (isFound(someArray[i])) {
        matchIndex = i;
        break;
    }
}
alert("Mathing index: " + matchIndex);
var-matchIndex=-1;
对于(i=0;i
很抱歉,在标记框中按enter键。“不提供当前元素的索引”-它为我提供。这是第二个参数。请向我们展示一些“将数组设置为false”的示例代码。我刚刚发现了这个方法。谢谢我最终还是按照正常的方式做了。我只是喜欢.each()在jQuery中的工作方式。
var matchIndex = -1;
for (i = 0; i < someArray.length; i++) {
    if (isFound(someArray[i])) {
        matchIndex = i;
        break;
    }
}
alert("Mathing index: " + matchIndex);