Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/376.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.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 数组的.filter函数中的for循环如何结束?_Javascript - Fatal编程技术网

Javascript 数组的.filter函数中的for循环如何结束?

Javascript 数组的.filter函数中的for循环如何结束?,javascript,Javascript,下面是一个程序,是从第一个参数中删除的程序,它始终是一个数组,元素等于连续参数。当我执行以下代码时,只有与第一个参数相等的值从输入数组(第一个参数)中删除,但其余的值保持不变 function destroyer(arr) { // Remove all the values var i; var arr = Array.prototype.slice.call(arguments); var arr_req = arr[0]; arr_req = arr_req.filte

下面是一个程序,是从第一个参数中删除的程序,它始终是一个数组,元素等于连续参数。当我执行以下代码时,只有与第一个参数相等的值从输入数组(第一个参数)中删除,但其余的值保持不变

function destroyer(arr) {
  // Remove all the values
  var i;
  var arr = Array.prototype.slice.call(arguments);
  var arr_req = arr[0];
  arr_req = arr_req.filter(function(val) {
        for(i = 1; i < arr.length; i++) {
            if(val === arr[i]) {
                return false;
            } else {
                return true;
            }
        }
    });
    return arr_req;
}

console.log(destroyer([1, 2, 3, 1, 2, 3], 2, 3));
那么,为什么在第一种情况下不能得到正确的结果呢?这和后者不一样吗?我是JavaScript新手。有人能解释一下吗?

功能销毁程序(arr){
function destroyer(arr) {
   var i;
   var arr=Array.prototype.slice.call(arguments);
   var arr_req=arr[0];
   arr_req=arr_req.filter(function(val){
              var flag;
    for(i=1;i<arr.length;i++)
    {

        if(val===arr[i])
        {        
                flag=false;        
        return false;
        }else{
                flag=true;            
        }

    }
    return flag;
});
var i; var arr=Array.prototype.slice.call(参数); var arr_req=arr[0]; arr_req=arr_req.过滤器(功能(val){ var标志;
for(i=1;ii在第一种情况下,
for
循环将只运行一次。其中的
return
语句将中断循环。
function destroyer(arr) {
   var i;
   var arr=Array.prototype.slice.call(arguments);
   var arr_req=arr[0];
   arr_req=arr_req.filter(function(val){
              var flag;
    for(i=1;i<arr.length;i++)
    {

        if(val===arr[i])
        {        
                flag=false;        
        return false;
        }else{
                flag=true;            
        }

    }
    return flag;
});