2017-04-05 107 views
0

这是我给出的代码。我环顾四周,我不太明白。javascript参数传递

这是我的问题功能驱逐舰接受一个参数的数组,但是当它正在调用3个参数发送一个数组和2个整数。

如何在函数中访问这两个整数参数,如果它们没有被传递?有什么可以让这个JavaScript的东西?

  function destroyer(arr) { 
     // Remove all the value; 
     return arr; 

     } 

     destroyer([1, 2, 3, 1, 2, 3], 2, 3); 

回答

1

您可以使用arguments变量在你的函数来获取传递的参数列表。

// ES5 
 
function destroyer(arr) { 
 
    var pieces = Array.prototype.splice.call(arguments, 1); 
 
    var i = 0; 
 

 
    while (arr[i]) { 
 
     -1 === pieces.indexOf(arr[i]) ? i++ : arr.splice(i, 1); 
 
    } 
 

 
    return arr; 
 
} 
 

 
// ES6 
 
function destroyer2(arr, ...pieces) { 
 
    var i = 0; 
 

 
    while (arr[i]) { 
 
     -1 === pieces.indexOf(arr[i]) ? i++ : arr.splice(i, 1); 
 
    } 
 

 
    return arr; 
 
} 
 

 
console.log(JSON.stringify(destroyer([1, 2, 3, 1, 2, 3], 3, 1))); 
 
console.log(JSON.stringify(destroyer2([1, 2, 3, 1, 2, 3], 2, 3)));

+0

谢谢你,真的很感激..把我卡住了一会儿 – William