JSFiddle - React, Tailwind, and code Playground
by midesowunmi
JavaScript
function addMethod(object, name, fn){
var old = object[name];
object[name] = function(){
if(fn.length == arguments.length){
return fn.apply(this, arguments)}
else if (typeof old == 'function')
return old.apply(this, arguments);
};
}
var ninjas = {
values: ["Abraham Lincoln", "George Washington", "Charles Drew"]
};
addMethod(ninjas, "find", function(){
return this.values;
});
addMethod(ninjas, "find", function(name){
var ret =[];
for(var i = 0; i < this.values.length; i++)
if(this.values[i].indexOf(name) == 0)
ret.push(this.values[i]);
return ret;
});
addMethod(ninjas, "find" , function(first, last){
var ret =[];
for (var i = 0; i <this.values.length; i++)
if (this.values[i] == (first + " " + last))
ret.push(this.values[i])
return ret;
});
if(ninjas.find().length == 3){ alert("Found all Ninjas")};
if(ninjas.find("George").length == 1){alert("Found Ninja by first name")};
if(ninjas.find("Abraham", "Lincoln").length == 1){alert("Found Ninja by first and last name")};