Skip to content
Find file
Fetching contributors…
Cannot retrieve contributors at this time
77 lines (61 sloc) 3.19 KB

Explanation:

The program needs to check if the second argument is a truthy element, and it must check this for each object in the first argument.

Hint: 1

Remember to iterate through the first argument to check each object.

Hint: 2

Only if all of them are truth will we return true, so make sure all of them check.

Hint: 3

You could use loops or callbacks functions, there are multiple ways to solve this problem.

Spoiler Alert!

687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif

Solutions ahead!

Code Solution using for-in loop & hasOwnProperty:

function every(collection, pre) {
  // Create a counter to check how many are true.
  var counter = 0;
  // Check for each object
  for (var c in collection) {
    // If it is has property and value is truthy
    if (collection[c].hasOwnProperty(pre) && Boolean(collection[c][pre])) {
      counter++;
    }
  }
  // Outside the loop, check to see if we got true for all of them and return true or false
  return counter == collection.length;
}

Code Explanation:

  • First I create a counter to check how many cases are actually true.
  • Then check for each object if the value is truthy
  • Outside the loop, I check to see if the counter variable has the same value as the length of collection, if true then return true, otherwise, return false

Code Solution using Array.every():

function every(collection, pre) {
  return collection.every(function (element) {
    return element.hasOwnProperty(pre) && Boolean(element[pre]);
  });
}

Code Explanation:

  • Uses the native "every" method to test whether all elements in the array pass the test.
  • This link will help Array.prototype.every()

Code solution using Array.reduce:

function every(collection, pre) {
    return collection.reduce(function(acc, next) {
        if (next[pre]) {
            return acc;
        } else {
            acc = false;
            return acc;
        }
    },true);

Code Explanation:

  • Set initial reduce value to true.
  • Change it to false only when there is no key of a given name or it's falsy. Otherwise stick to the initial truthy value.

Credits:

If you found this page useful, you can give thanks by copying and pasting this on the main chat: thanks @Rafase282 @estevanmaito @HermanFassett for your help with Algorithm: Everything Be True

NOTE: Please add your username only if you have added any relevant main contents to the wiki page. (Please don't remove any existing usernames.)

Something went wrong with that request. Please try again.