检查谓词是否应返回 true 或 false,未按预期工作



我试图辨别谓词是否在javascript对象的所有实例中返回truthy。我的代码没有按预期执行,我不确定为什么,可以使用一些帮助/指导来说明我出错的地方,因为我在所有测试用例中都没有匹配正确的结果。我想检查键/值对的值以捕获值为 NAN 但无法确定如何做到这一点的情况。更新的代码如下,这是一项正在进行的工作,一旦我有一个有效的解决方案,我将重构它。

当前代码

测试用例应返回 false,但不返回every([{"user": "Tinky-Winky

", ": "male", "age": 0}, {"user": "Dipsy", ": "male", "age": 3}, {"user": "Laa-Laa", ": "female", "age": 5}, {"user": "Po", ": "female", "age": 4}], "age")

every([{"name": "Pete

", "onBoat": true}, {"name": "Repeat", "onBoat": true}, {"name": "FastFoward", "onBoat": null}], "onBoat")

我稍微整理了一下你的代码:

function propertyExists(array,property)
{
    var hasProperty = true;
    array.forEach(function(element)
    {
        if(!element.hasOwnProperty(property))
        {
            hasProperty = false;
        }
    });
    return hasProperty;
}

解释:

代码循环遍历 Array 并检查每个元素的属性是否存在。如果是这样,它会继续下一个。如果不是,它将标志hasProperty设置为 false 。当 forEach 循环到达数组的末尾时,将返回 hasProperty 的值。

我知道这可能不是最有效的方法,但这是我想到的第一件事。

我终于能够通过添加检查值是否存在来过滤掉虚假值来通过测试用例,我使用了一系列 if 语句来做到这一点,尽管我认为有更好的方法,但我很难理解访问 javascript 对象,所以这对我来说是一个艰难的问题。篝火 一切都是真的

这是来自FreeCodeCamp,因为编辑器不喜欢我的代码格式,我只是链接到答案。

最新更新