如果没有,我真的不明白这一点!操作员
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 true
或 false
和 !
否定结果。只有在您的示例 .includes()
returns false
.
中,循环才会执行
对我来说好像你想过滤数组,所以也许你应该使用 .filter()
方法:
const newArray = array.filter((el)=>!(testArray.includes(el)))
您似乎将这里的“除非”解释为字面意思,我明白一开始这可能有点令人困惑。
也许如果重新措辞,它可能不会那么混乱:
不要将元素推入数组,除非它不包含在参数中。
或更直白的实际代码:
如果项目不在参数中,将其添加到数组
首先这是我的代码:
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 true
或 false
和 !
否定结果。只有在您的示例 .includes()
returns false
.
对我来说好像你想过滤数组,所以也许你应该使用 .filter()
方法:
const newArray = array.filter((el)=>!(testArray.includes(el)))
您似乎将这里的“除非”解释为字面意思,我明白一开始这可能有点令人困惑。
也许如果重新措辞,它可能不会那么混乱: 不要将元素推入数组,除非它不包含在参数中。 或更直白的实际代码: 如果项目不在参数中,将其添加到数组