Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ES6-find()在与零比较时始终返回true_Javascript_Ecmascript 6 - Fatal编程技术网

Javascript ES6-find()在与零比较时始终返回true

Javascript ES6-find()在与零比较时始终返回true,javascript,ecmascript-6,Javascript,Ecmascript 6,这可能很愚蠢,但是find()总是返回true!有什么线索吗 var test = [0]; !test.find((id) => { var comparison = 0; console.log(comparison === id); return comparison === id }); // true // true !test.find((id) => { var comparison = 5; console.log(c

这可能很愚蠢,但是
find()
总是返回
true
!有什么线索吗

var test = [0];

!test.find((id) => {
    var comparison = 0; 
    console.log(comparison === id); 
    return comparison === id
});
// true
// true

!test.find((id) => {
    var comparison = 5; 
    console.log(comparison === id); 
    return comparison === id
});
// false
// true
顺便说一句,这个只发生在
0
时,比较任何其他数字都非常有效。我可能错过了一些明显的东西

更新:

我用这个逻辑从另一个数字数组中过滤出一个数字数组,例如:

private array1 = [0, 1, 2];
private array2 = [0, 1];

this.array1 = [...this.array1.filter((branch_id) => !array2.includes(branch_id))];
我使用spread运算符是因为我需要使用这个类成员
array1
来做其他事情。这是在一个角度/TS上下文中,我不想将其引入OP

有什么线索吗

var test = [0];

!test.find((id) => {
    var comparison = 0; 
    console.log(comparison === id); 
    return comparison === id
});
// true
// true

!test.find((id) => {
    var comparison = 5; 
    console.log(comparison === id); 
    return comparison === id
});
// false
// true
您正在使用
强制
查找
的输出值转换为其布尔相反值

它的计算结果是
!0
=>

顺便说一下,这只发生在0的情况下

0
作为一个假值,被强制为其布尔相反的
true

如果要从另一个数字数组中筛选出一个数字数组,则


似乎你想要的是
一些
,而不是
查找
@JonasW。事实上,这正是我应该使用的函数。谢谢但是,由于问题的主题是常量
true
输出,因此我将对此进行投票或接受作为正确答案。我使用此
find()
从另一个数字数组中筛选出一个数字数组。您建议如何允许此筛选器正确筛选所有数字,包括零?按照说明,不是
true==5
=
false
?所以,
!0===5
应该等于
false
,对吗?这里始终是真的您要查找的输出是什么?实际上,就像@JonasW建议的那样,我正在查找
some()
,只需要返回一个布尔id,该值存在于数组中。但是,我仍然不完全理解为什么我总是将
true
作为输出。我甚至尝试将两个比较的值解析为字符串……如果您希望在数组中的任何项匹配条件时返回true,那么您可以使用
some
。但由于我不清楚你们想要的是什么,我会等待澄清。我的回答只是解释了为什么你会得到你所得到的价值。