在ES6中,我尝试将传递给
以下是我尝试做的示例:
Set
构造函数的arguments
对象作为可迭代对象使用。在IE11和Chrome 47中运行良好,但在Firefox 43中不起作用(会抛出TypeError:arguments is not iterable
)。我已经查阅了ES6规范,但没有找到关于arguments
对象是否应该是可迭代对象的定义。以下是我尝试做的示例:
function destroyer(arr) {
var removes = new Set(arguments);
return arr.filter(function(item) {
return !removes.has(item);
});
}
// remove items 2, 3, 5 from the passed in array
var result = destroyer([3, 5, 1, 2, 2], 2, 3, 5);
log(result);
提醒一下,我知道有各种解决此代码的方法,例如将参数对象复制到真实数组中或使用剩余参数。这个问题是关于ES6中的arguments
对象是否应该是可迭代的,可以在任何需要可迭代的地方使用。