Created
June 15, 2018 18:30
-
-
Save eday69/18e9d86173ed7c23dec3f67fdb515b50 to your computer and use it in GitHub Desktop.
freeCodeCamp Intermediate Algorithm Scripting: Everything Be True
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Check if the predicate (second argument) is truthy on all | |
// elements of a collection (first argument). | |
// In other words, you are given an array collection of objects. | |
// The predicate pre will be an object property and you need to | |
// return true if its value is truthy. Otherwise, return false. | |
// In JavaScript, truthy values are values that translate to true | |
// when evaluated in a Boolean context. | |
// Remember, you can access object properties through either dot | |
// notation or [] notation. | |
function truthCheck(collection, pre) { | |
// Is everyone being true? | |
return collection.reduce((status, person) => | |
(status && person.hasOwnProperty(pre) && !!person[pre]), | |
true); | |
} | |
truthCheck([{"user": "Tinky-Winky", "sex": "male"}, | |
{"user": "Dipsy", "sex": "male"}, | |
{"user": "Laa-Laa", "sex": "female"}, | |
{"user": "Po", "sex": "female"}], "sex"); // true. | |
truthCheck([{"user": "Tinky-Winky", "sex": "male"}, | |
{"user": "Dipsy"}, {"user": "Laa-Laa", "sex": "female"}, | |
{"user": "Po", "sex": "female"}], "sex"); // false. | |
truthCheck([{"user": "Tinky-Winky", "sex": "male", "age": 0}, | |
{"user": "Dipsy", "sex": "male", "age": 3}, | |
{"user": "Laa-Laa", "sex": "female", "age": 5}, | |
{"user": "Po", "sex": "female", "age": 4}], "age"); // false. | |
truthCheck([{"name": "Pete", "onBoat": true}, | |
{"name": "Repeat", "onBoat": true}, | |
{"name": "FastFoward", "onBoat": null}], "onBoat"); // false | |
truthCheck([{"name": "Pete", "onBoat": true}, | |
{"name": "Repeat", "onBoat": true, "alias": "Repete"}, | |
{"name": "FastFoward", "onBoat": true}], "onBoat"); // true | |
truthCheck([{"single": "yes"}], "single"); // true | |
truthCheck([{"single": ""}, {"single": "double"}], "single"); // false | |
truthCheck([{"single": "double"}, {"single": undefined}], "single"); // false | |
truthCheck([{"single": "double"}, {"single": NaN}], "single"); // false |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment