Giter VIP home page Giter VIP logo

is-match's Introduction

isMatch(
     item1: any,
     item2: any
): boolean

Works for any data type, but really intended for array comparison.
The algorithm:

function isMatch(item1, item2) {
    if (item1 === item2) return true;

    if (isArray(item1) && isArray(item2) && (item1.length === item2.length)) {

        for (let i = 0, length = item1.length; i < length; ++i) {
            if (not(isMatch( item1[i], item2[i] ))) return false;
        }
        return true;
    }
    else return false;
}

Examples

isMatch([], []); // true

isMatch(['a', 'b'],  ['a', 'b']); // true

isMatch(['a', 'b'],  ['a', 'b', 'c']); // false

// Elements must be in matching order to match:
isMatch(['a', 'b', 'c'],  ['c', 'b', 'a']); // false

isMatch([1, 2, [3]], [1, 2, [3]]); // true

let obj = {prop: 1};
isMatch([obj], [{prop:1}]); // false

let obj2 = obj;
isMatch([obj], [obj2]); // true


// Behaves the same as === operator for primitive types and non-array objects:

isMatch('', ''); // true

isMatch('0', '0'); // true

isMatch('0', 0); // false

isMatch('00', '01'); // false

isMatch(Infinity, Infinity); // true

isMatch(undefined, undefined); // true

let obj = {prop: 1};
isMatch(obj, {prop:1}); // false

let obj2 = obj;
isMatch(obj, obj2); // true

Installation

npm i @writetome51/is-match

Loading

import {isMatch} from '@writetome51/is-match'; 

is-match's People

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.