when I take everything inside the nested loop and put it outside and changed the indices to actual values, then it will return something. When it’s inside the loops, it doesn’t do anything.
This outputs [];
function whatIsInAName(collection, source) {
// What's in a name?
var arr = [];
// Only change code below this line
var sourcekeys = Object.keys(source);
for (var i = 0; i < sourcekeys; i++){
for (var j = 0; j < collection.length; j++){
// Checks to see if the object has the property and if their values are the same
if (collection[j].hasOwnProperty(sourcekeys[i]) && collection[j][sourcekeys[i]] === source[sourcekeys[i]]){
arr.push(collection[j]);
}
}
}
// Only change code above this line
return arr;
}
This actually returns something:
if (collection[0].hasOwnProperty(sourcekeys[0]) && collection[0][sourcekeys[0]] === source[sourcekeys[0]]){
arr.push(collection[0]);
}
return arr;