如果没有,我真的不明白这一点!操作员

I really don't understand this if with NOT! operator

首先这是我的代码:

const removeFromArray = function (...args) {
const array = args[0];
const newArray = [];
array.forEach((item) => {
    if (!args.includes(item)) {
        newArray.push(item);
    }
});
return newArray;

问题是这个 !args.includes(item),NOT 运算符,在我看来在这种情况下它真的没有意义......我试图重新制定,重写但它没有帮助。

该函数应该将每个元素推入数组,除非它包含在函数参数中(例如使用这样的参数:removeFromArray([1, 2, 3], 2, 4))但是 'unless' 如何处理这个 if条件 ?

你能点亮我的灯笼吗?

.includes() returns truefalse! 否定结果。只有在您的示例 .includes() returns false.

中,循环才会执行

对我来说好像你想过滤数组,所以也许你应该使用 .filter() 方法:

const newArray = array.filter((el)=>!(testArray.includes(el)))

您似乎将这里的“除非”解释为字面意思,我明白一开始这可能有点令人困惑。

也许如果重新措辞,它可能不会那么混乱: 不要将元素推入数组,除非它不包含在参数中。 或更直白的实际代码: 如果项目不在参数中,将其添加到数组