Javascript 过滤器返回true或false
我正在使用筛选器在数据中查找id。它返回的对象不是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 ==
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
});