Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.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 过滤器返回true或false_Javascript_Filter - Fatal编程技术网

Javascript 过滤器返回true或false

Javascript 过滤器返回true或false,javascript,filter,Javascript,Filter,我正在使用筛选器在数据中查找id。它返回的对象不是true或false 如果val.recoredId===valueId,如何返回true或false var hasMatch = data.filter(function (val) { return (val.recordId === valueId); }); 试试这个 var hasMatch = data.filter(function (val) { return !!(val.recordId ==

我正在使用筛选器在数据中查找id。它返回的对象不是true或false

如果
val.recoredId===valueId
,如何返回true或false

var hasMatch = data.filter(function (val) {
  return (val.recordId === valueId);
});
        
试试这个

var hasMatch = data.filter(function (val) {
    return !!(val.recordId === valueId);                               
});

只需检查过滤结果的长度

var hasMatch = data.filter(function (val) {
  return (val.recordId === valueId);
}).length > 0;
使用查找

 hasMatch = data.find(function (value) {return value.recordId == valueId });

虽然使用附加长度的方法调用筛选器确实可以解决这个问题,但我会将您指向
some()


如果数组包含任何匹配的
value.recordId==valueId
entries

这将返回一个布尔值。不清楚您要问什么,但假设
data
是一个数组,请尝试该函数。如果您的问题确实不清楚,请阅读“如何问一个好问题”,然后重试……这是您的问题吗“如果数组中的任何对象的id等于valueId,我需要将hasMatch设置为true“?@nnnnnn是的,我需要将hasMatch设置为true,而不是jsonobject@Tushar当然,由于0是一个错误的值,因此它在没有该值的情况下也可以工作。但可能是为了可读性,因为OP对于这个过滤方法来说似乎是新的,所以我会保留它。此外,我的答案将与您的答案相同:)取决于hasMatch是否需要为实际的布尔值-如果需要,则保留>0测试。
=
运算符已返回true或false,因此添加
没有任何作用。问题是如何将
hasMatch
变量设置为布尔值。当前它是一个数组。它仍然返回一个对象,将其包装成布尔函数将返回布尔值
hasMatch=boolean(data.find(a=>{return a.recordId==valueId}))
hasMatch = data.some(function (value) {
   return value.recordId == valueId
});