JSFiddle - React, Tailwind, and code Playground

by harperj1029

JavaScript

// Original code:
Array.prototype.contains = function(obj, equality) {
    for (var i = 0; i < this.length; i++) {
        if (equality) {
            return equality(this[i], obj);
        }
        else if (this[i] == obj) {
            return true;
        }
    }
    return false;
};
var equality = function(item1,item2){
    return item1 === item2;
};
var myArray = [1,2,3,4,5];
// Should be true;
document.write('Original contains (3): ' + myArray.contains(3,equality) + '<p/>'); 
// However, this does work (as the default equality code is run):
document.write('Original contains without equality param (3): ' + myArray.contains(3) + '<p/>');
/* NEW VERSION */
Array.prototype.contains = function(obj, equality) {
    equality = equality || function(item1,item2){
        return item1 == item2;
    };
    for (var i = 0; i < this.length; i++) {
        if (equality(this[i],obj)) {
            return true;
        }
    }
    return false;
};
document.write('New contains (3): ' + myArray.contains(3,equality));