将参数与JavaScript中的参数进行比较

时间:2019-02-18 09:58:23

标签: javascript foreach arguments

请帮助我提供此代码;我正在尝试将参数与数组元素进行比较并在匹配时返回,我不知道这段代码有什么问题,它返回的是 1 而不是 array ,谢谢。

const removeFromArray = function() {
var delArgs = [] ;

//convert the arguments to an array called 'args'.
var args = Array.from(arguments);
var Arr = args[0];

//using foreach() and forloop to compare arguments with Arr elements.
Arr.forEach(function(x){
    for (var j=1 ; j < args.length ; j++){
        if(x == args[j]){
            delArgs = delArgs.push(x);
        }

    }

 });
     return delArgs;
}

removeFromArray([1,2,3,4,5,6],5); 1

2 个答案:

答案 0 :(得分:2)

delArgs = delArgs.push(x);

您正在用delArgs的返回值the new length of the array覆盖push

不要那样做。

答案 1 :(得分:0)

由于问题已经得到解答,您可以使用它来编写较短的代码

const removeFromArray = (array, ...args) => {
  return args.filter( arg => array.includes(arg)  )
}

console.log(removeFromArray([1, 2, 3, 4, 5, 6], 5,6));