/jSearch

Search a string, array or object for another string array or object (deep nesting)

Primary LanguageJavaScriptMIT LicenseMIT

jSearch

Search a string, array or object for another string array or object (deep nesting)

Search for a String

var searchTarget = "My name is Bob";
var searchQuery = "Bob";

jSearch(searchTarget, searchQuery); // Returns true
var searchTarget = {
    author: {
        name: "Bob"
    }
};
var searchQuery = "Bob";

jSearch(searchTarget, searchQuery); // Returns true
var searchTarget = [
    {
        author: {
            name: "Bob"
        }
    },
    {
        author: {
            name: "Larry"
        }
    }
];
var searchQuery = "Bob";

jSearch(searchTarget, searchQuery); // Returns searchTarget[0]

Search for Array

var searchTarget = ["Bob", "Larry", "Julia"];
var searchQuery = ["Bob", "Larry", "Julia"];

jSearch(searchTarget, searchQuery); // Returns searchTarget

searchTarget = ["Bob", "Larry", "Julia", "Mona"];
jSearch(searchTarget, searchQuery); // Returns false
var searchTarget = {
    authors: ["Bob", "Larry", "Julia"],
    };
var searchQuery = ["Bob", "Larry", "Julia"];

jSearch(searchTarget, searchQuery); // Returns searchTarget
var searchTarget = [
    {
        authors: ["Bob", "Larry", "Julia"],
    },
    {
        authors: ["Bob", "Larry", "Julia", "Mona"],
    }
];
var searchQuery = ["Bob", "Larry", "Julia"];

jSearch(searchTarget, searchQuery); // Returns searchTarget[0]

Search for Object

var searchTarget = {
    author: "Bob Jones",
    friends: ["Bob", "Larry", "Julia"]
};
var searchQuery = {
  author: "Bob Jones",
  friends: ["Bob", "Larry", "Julia"]
};

jSearch(searchTarget, searchQuery); // Returns searchTarget
var searchTarget = [
    {
        author: "Bob Jones",
        friends: ["Mona", "Larry", "Julia"]
    },
    {
        author: "Larry Jones",
        friends: ["Bob", "Mona", "Julia"]
    },
    {
        author: "Bob Jones",
        friends: ["Bob", "Larry", "Julia"]
    }
];
var searchQuery = {
  author: "Bob Jones",
  friends: ["Mona", "Larry", "Julia"]
};

jSearch(searchTarget, searchQuery); // Returns searchTarget[0]
var searchTarget = [
    {
        author: "Bob Jones",
        friends: ["Mona", "Larry", "Julia"]
    },
    {
        author: "Larry Jones",
        workedWith: [
            {
                author: "Bob Jones",
                friends: ["Mona", "Larry", "Julia"]
            },
            {
                author: "Mona the Monster",
                friends: ["Bob", "Larry", "Julia"]
            }
        ]
    },
    {
        author: "Mona the Monster",
        workedWith: [
            {
                author: "Julia Childs",
                friends: ["Mona", "Larry", "Bob"]
            },
            {
                author: "Larry Jones",
                friends: ["Bob", "Mona", "Julia"]
            }
        ]
    }
];

var searchQuery = {
  author: "Bob Jones",
  friends: ["Mona", "Larry", "Julia"]
};

jSearch(searchTarget, searchQuery); // Returns searchTarget[0] and searchTarget[1] as an array

Use with Node.js

var jSearch = require("jsearch");

jSearch(object, query);

Use in a web browser

<script src="dist/jSearch.min.js"></script>

<script type="text/javascript">
    // ... My application code
    
    jSearch(object, query);
    
    // ... More application code
</script>