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")};