Javascript For循环不遍历整个数组

Javascript For循环不遍历整个数组,javascript,Javascript,我有两个数组 newArray1 = [104,101,108,108,111]; 及 我只是想看看数组1中的某些数字是否在数组2中 for(i=0;i<newArray2.length;i++) { if(newArray.indexOf(newArray2[i]) > -1) { console.log(newArray2[i]); } else { } } 我收到 //104 //101 不是 //104 //101 //121 首先,在顶部命名变量

我有两个数组

newArray1 = [104,101,108,108,111]; 

我只是想看看数组1中的某些数字是否在数组2中

for(i=0;i<newArray2.length;i++) { 
if(newArray.indexOf(newArray2[i]) > -1) { 
  console.log(newArray2[i]); 
} else { 

 }
}
我收到

//104
//101
不是

//104
//101
//121 

首先,在顶部命名变量
newArray1
newArray2
,在循环中命名变量
newArray2
。。。我想那只是你错误地复制了你的代码


问题是您使用的是return,它结束了for循环。。。看起来您刚刚编辑了代码来解决这个问题,现在您得到了应该得到的结果!121不在newArray1中,因此if语句中的console.log永远不会执行。将其移动到
if(newArray.indexOf(newArray2[i])>-1)之前{
您将在控制台日志中看到121。

循环只会在位置0和1上迭代-不,只
0
,因为
返回
往往会立即从函数返回。代码完全按照您的要求执行。您不会得到
121
,因为它不包含在
newArray
.Y中仅当值包含在
newArray
中时,您才记录该值。这就是
if(newArray.indexOf(newArray2[i])>-1的作用{
part确实如此。您还希望该条件做什么?要清楚:整个数组被迭代,但您没有在每次迭代中调用
console.log
。我删除了问题中的返回语句。在本例中,if语句为true。当我调用console.log(newArray2[i])我只收到了0和1。好吧,既然您已经更改了代码以删除
返回值
s,那么您让我的评论看起来很荒谬-但是,现在您的问题看起来同样荒谬,因为您只需要console.log
newArray2[i]
如果该值存在于newArray中……显然121不存在,因此您的代码不会将121输出到控制台。您会收到一个引用错误,因为您从未定义过
newArray
。请尝试提供一个新的数组,并测试它是否按照您认为的那样工作。
//104
//101
//104
//101
//121