+ 1
Rest Parameters in ES6
what does these following lines mean? function containsAll(arr) { for (let k = 1; k < arguments.length; k++) { let num = arguments[k]; if (arr.indexOf(num) === -1) { return false; } } return true; } let x = [2, 4, 6, 7]; console.log(containsAll(x, 2, 4, 7)); console.log(containsAll(x, 6, 4, 9)); please can anyone explain me this code?
1 Answer
+ 4
`arguments` is like an array and it contains all arguments passed to your function. For example if you have
something(x, 2, 4, 7);
then
arguments[0] == x
arguments[1] == 2
arguments[2] == 4
arguments[3] == 7
However, this is not nice ES6 code. In ES6 we should to do this instead:
function containsAll(arr, ...rest) {
for(let num of rest) {
if(arr.indexOf(num) === -1)
return false;
}
return true;
}