检查谓词是否应该返回true或false不能按预期工作

时间:2016-03-08 11:17:23

标签: javascript

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

currentcode

testcases应返回false但不返回false 每一个([{"用户":" Tinky-Winky","性别":"男性","年龄" :0},{"用户":" Dipsy","性":"男","年龄": 3},{"用户":" Laa-Laa","性":"女","年龄" :5},{"用户":" Po","性":"女","年龄": 4}],"年龄")

每一个([{" name":" Pete"," onBoat":true},{" name":&#34 ;重复"," onBoat":true},{" name":" FastFoward"," onBoat":null}], " onBoat&#34)

2 个答案:

答案 0 :(得分:0)

我稍微整理了你的代码:

function propertyExists(array,property)
{
    var hasProperty = true;

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

说明:

代码在Array上循环,并检查每个元素的属性是否存在。 如果是的话,它会移动到下一个。 如果不是,则将标记hasProperty设置为false。 当forEach循环到达数组的末尾时,返回hasProperty的值。

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

答案 1 :(得分:0)

我终于能够通过添加检查来传递测试用例是否存在过滤掉伪造值的值,我使用了一系列if语句来执行此操作,但我认为有更好的方法,我无法包装我的前往访问javascript对象,所以对我来说这是一个艰难的。 Bonfire Everything be True

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