{"id":15006,"date":"2016-10-26T12:15:39","date_gmt":"2016-10-26T09:15:39","guid":{"rendered":"https:\/\/www.webcodegeeks.com\/?p=15006"},"modified":"2016-10-25T13:11:23","modified_gmt":"2016-10-25T10:11:23","slug":"introduction-underscore-js","status":"publish","type":"post","link":"https:\/\/www.webcodegeeks.com\/javascript\/introduction-underscore-js\/","title":{"rendered":"An Introduction To Underscore.js"},"content":{"rendered":"<p>Recently I starting working in the Backbone.js framework which has dependency on the Underscore.js framework. Underscore is a JavaScript utility library with many useful functions to handle common programming use cases.<\/p>\n<p>I decided it would be a good idea to spend some time discovering what all the framework has to offer those within and outside of Backbone. In this blog, I discuss some of the more useful functions I have found inside of Underscore.<\/p>\n<h3>_.each<\/h3>\n<p>You can use <code>_.each<\/code> to make more easily readable loops. Here is a common way to loop through an array in JavaScript:<\/p>\n<pre class=\"brush:perl\">var list = [1 , 2 ,3];\r\nfor(var i = 0; i &lt; list.length; i++ ) {\r\n    console.log(list[i] * 2); \/\/logs \u20182, 4, 6\u2019\r\n}<\/pre>\n<p>Using underscore\u2019s <code>_.each<\/code>, we can make this much more readable, mainly as you are not having to use access the items of the array with the index.<\/p>\n<pre class=\"brush:perl\">_.each(list, function (item, index, list) {\r\n\tconsole.log(item * 2);\/\/logs \u20182, 4, 6\u2019\r\n});<\/pre>\n<p><code>_.map<\/code> is similar, but returns an array built from the outputs of the function.<\/p>\n<pre class=\"brush:perl\">var result = _.map(list, function (list, function (item, index, list) {\r\n    return item * 3;\r\n})); \r\nconsole.log(result);\/\/logs \u2018[3, 6, 9]\u2019<\/pre>\n<h3>_.filter<\/h3>\n<p>This does what you can probably guess by its name: filters a collection. It loops through a collection and returns an array of entries that return true for a truth test.<\/p>\n<pre class=\"brush:perl\">var result = _.filter(list, function (item) { return item % 2 == 1 }); \r\nconsole.log(result);\/\/ logs '[1,3]'<\/pre>\n<h3>_.times<\/h3>\n<p>This is a very simple way to loop a specific number of times.<\/p>\n<pre class=\"brush:perl\">_.times(5, function () {\r\n    console.log('hello');\/\/ will log hello 5 times\r\n});<\/pre>\n<h3>_.pluck<\/h3>\n<p>This is a convenient way for pulling out a list of property values from a list of objects.<\/p>\n<p>A fairly common task in coding might be getting a list of names from a collection of people objects. Here is a way of doing this in JavaScript:<\/p>\n<pre class=\"brush:perl\">var people = [{\r\n    name: 'John',\r\n    age: 30,\r\n    state: 'KS'\r\n}, {\r\n    name: 'Phil',\r\n    age: 25,\r\n    state: 'KS'\r\n}, {\r\n    name: 'Bob',\r\n    age: 50,\r\n    state: 'NY'\r\n}];\r\nvar names = people.map(function(person) {\r\n    return person.name\r\n});\r\nconsole.log(names); \/\/ logs '[\"John\", \"Phil\", \"Bob\"]'<\/pre>\n<p>This can be simplified with Underscore to:<\/p>\n<pre class=\"brush:perl\">var names = _.pluck(people, 'name');\r\nconsole.log(names);\/\/ logs '[\"John\", \"Phil\", \"Bob\"]'<\/pre>\n<h3>_.findWhere<\/h3>\n<p>This can used to find a single object from a collection that matches the given key-value pairs. First I\u2019ll write something similar using just JavaScript:<\/p>\n<pre class=\"brush:perl\">var person;\r\nfor (var i = 0; i &lt; people.length; i++) {\r\n    if (people[i].name === 'Phil' &amp;&amp; people[0].state == 'KS') {\r\n        person = people[i];\r\n    }\r\n}\r\nconsole.log(person); \/\/logs '{name: \"Phil\", age: 25, state: \"KS\"}'<\/pre>\n<p>Now see it simplified with Underscore:<\/p>\n<pre class=\"brush:perl\">var person = _.findWhere(people, { name: 'Phil', state: 'KS' });\r\nconsole.log(person);\/\/logs '{name: \"Phil\", age: 25, state: \"KS\"}'<\/pre>\n<p>Not only is the code more simple to write, but notice how much more apparent it is to the reader what the code is actually trying to accomplish.<\/p>\n<h3>_.where<\/h3>\n<p><code>_.where<\/code> is similar to <code>_.findWhere<\/code>, but will return an array of all matching entries instead of just the first one found.<\/p>\n<pre class=\"brush:perl\">var kansasPeople = _.where(people, { state: 'KS' });<\/pre>\n<h3>_.sortBy<\/h3>\n<p>Sorting collections by property name can done with <code>_.sortBy.<\/code><\/p>\n<pre class=\"brush:perl\">var sortedPeople = _.sortBy(people, 'age');\r\nconsole.log(_.pluck(sortedPeople, 'name'));\/\/logs '[\"Phil\", \"John\", \"Bob\"]'<\/pre>\n<p>Backbone leverages its dependency on Underscore so that Backbone collections can inherently use many of the underscore iteration functions such as <code>each<\/code>, <code>map<\/code>, <code>findWhere<\/code>, <code>Where<\/code>, <code>Filter<\/code>, <code>sortBy<\/code>, etc. These prove quite useful and powerful when dealing with large data collections.<\/p>\n<p>There are multiple type checking methods and are super simple to read and understand that can come in handy.<\/p>\n<pre class=\"brush:bash\">\r\n_.isString(object);\r\n_.isNumber(object);\r\n_.isBoolean(object);\r\n_.isDate(object);\r\n_.isNan(object);\r\n_.isNull(object);\r\n_.isUndefined(object);<\/pre>\n<p>Underscore can even be used to template strings. This is useful for creating html templates with objects.<\/p>\n<pre class=\"brush:perl\">var helloTemplate = _.template(\r\n    '&lt;h1&gt;Hello &lt;%= name %&gt;&lt;\/h1&gt;');\r\nvar htmlString = helloTemplate(people[2]);\r\nconsole.log(htmlString); \/\/'&lt;h1&gt;Hello Bob&lt;\/h1&gt;'<\/pre>\n<p>You can write JavaScript logic within templates, like in the following example. This would produce an unordered list of all the people in the <code>person<\/code> array.<\/p>\n<pre class=\"brush:perl\">var listTemplate = _.template(\r\n    '&lt;ul&gt;&lt;% _.each(people, function (person) { %&gt;' +\r\n    '&lt;li&gt;&lt;%= person.name %&gt;&lt;\/li&gt;' +\r\n    '&lt;% }) %&gt;&lt;\/ul&gt;\r\n\r\n');\r\nvar htmlListString = listTemplate({\r\n    people: people\r\n});<\/pre>\n<h2>Final Thoughts<\/h2>\n<p>These were some pretty simple examples of what can be found in the Underscore framework. Some of the benefits are less apparent in smaller and simpler code chunks. But, as the complexity of the code increases, this is where Underscore really shines as the useful toolbox that it is.<\/p>\n<p>Using the framework can allow you to be more expressive in your code, improving readability for all those that may have to eventually dig through your code.<\/p>\n<p>There are many other functions Underscore.js has in its library. You can read more about the rest of them at <a href=\"http:\/\/www.underscorejs.org\" target=\"_blank\">http:\/\/www.underscorejs.org<\/a>.<\/p>\n<div class=\"attribution\">\n<table>\n<tbody>\n<tr>\n<td><span class=\"reference\">Reference: <\/span><\/td>\n<td><a href=\"https:\/\/keyholesoftware.com\/2016\/10\/24\/an-introduction-to-underscore-js\/\">An Introduction To Underscore.js<\/a> from our <a href=\"http:\/\/www.webcodegeeks.com\/join-us\/wcg\/\">WCG partner<\/a>\u00a0Nick Brown\u00a0at the <a href=\"http:\/\/keyholesoftware.com\/\">Keyhole Software<\/a> blog.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Recently I starting working in the Backbone.js framework which has dependency on the Underscore.js framework. Underscore is a JavaScript utility library with many useful functions to handle common programming use cases. I decided it would be a good idea to spend some time discovering what all the framework has to offer those within and outside &hellip;<\/p>\n","protected":false},"author":191,"featured_media":920,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9],"tags":[398],"class_list":["post-15006","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-javascript","tag-underscore-js"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>An Introduction To Underscore.js - Web Code Geeks - 2026<\/title>\n<meta name=\"description\" content=\"Recently I starting working in the Backbone.js framework which has dependency on the Underscore.js framework. Underscore is a JavaScript utility library\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.webcodegeeks.com\/javascript\/introduction-underscore-js\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"An Introduction To Underscore.js - Web Code Geeks - 2026\" \/>\n<meta property=\"og:description\" content=\"Recently I starting working in the Backbone.js framework which has dependency on the Underscore.js framework. Underscore is a JavaScript utility library\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.webcodegeeks.com\/javascript\/introduction-underscore-js\/\" \/>\n<meta property=\"og:site_name\" content=\"Web Code Geeks\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/webcodegeeks\" \/>\n<meta property=\"article:published_time\" content=\"2016-10-26T09:15:39+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/js-logo.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"150\" \/>\n\t<meta property=\"og:image:height\" content=\"150\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Nick Brown\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@webcodegeeks\" \/>\n<meta name=\"twitter:site\" content=\"@webcodegeeks\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Nick Brown\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.webcodegeeks.com\/javascript\/introduction-underscore-js\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/javascript\/introduction-underscore-js\/\"},\"author\":{\"name\":\"Nick Brown\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/1175cdbd7401877037d41c97acca4f5a\"},\"headline\":\"An Introduction To Underscore.js\",\"datePublished\":\"2016-10-26T09:15:39+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/javascript\/introduction-underscore-js\/\"},\"wordCount\":548,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/javascript\/introduction-underscore-js\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/js-logo.jpg\",\"keywords\":[\"Underscore.js\"],\"articleSection\":[\"JavaScript\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.webcodegeeks.com\/javascript\/introduction-underscore-js\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.webcodegeeks.com\/javascript\/introduction-underscore-js\/\",\"url\":\"https:\/\/www.webcodegeeks.com\/javascript\/introduction-underscore-js\/\",\"name\":\"An Introduction To Underscore.js - Web Code Geeks - 2026\",\"isPartOf\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/javascript\/introduction-underscore-js\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/javascript\/introduction-underscore-js\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/js-logo.jpg\",\"datePublished\":\"2016-10-26T09:15:39+00:00\",\"description\":\"Recently I starting working in the Backbone.js framework which has dependency on the Underscore.js framework. Underscore is a JavaScript utility library\",\"breadcrumb\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/javascript\/introduction-underscore-js\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.webcodegeeks.com\/javascript\/introduction-underscore-js\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.webcodegeeks.com\/javascript\/introduction-underscore-js\/#primaryimage\",\"url\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/js-logo.jpg\",\"contentUrl\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/js-logo.jpg\",\"width\":150,\"height\":150},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.webcodegeeks.com\/javascript\/introduction-underscore-js\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.webcodegeeks.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"JavaScript\",\"item\":\"https:\/\/www.webcodegeeks.com\/category\/javascript\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"An Introduction To Underscore.js\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#website\",\"url\":\"https:\/\/www.webcodegeeks.com\/\",\"name\":\"Web Code Geeks\",\"description\":\"Web Developers Resource Center\",\"publisher\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.webcodegeeks.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#organization\",\"name\":\"Exelixis Media P.C.\",\"url\":\"https:\/\/www.webcodegeeks.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png\",\"contentUrl\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png\",\"width\":864,\"height\":246,\"caption\":\"Exelixis Media P.C.\"},\"image\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/webcodegeeks\",\"https:\/\/x.com\/webcodegeeks\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/1175cdbd7401877037d41c97acca4f5a\",\"name\":\"Nick Brown\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/b61208cf418f78728a1d0dffb9f489dec39a58ece4d632843b414bd356207549?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/b61208cf418f78728a1d0dffb9f489dec39a58ece4d632843b414bd356207549?s=96&d=mm&r=g\",\"caption\":\"Nick Brown\"},\"description\":\"I am a web application developer based out of Overland Park, KS. I have experience with .NET and developing single page applications with JavaScript. When I'm not coding, you can find me playing guitar, or being a father to my three children.\",\"url\":\"https:\/\/www.webcodegeeks.com\/author\/nick-brown\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"An Introduction To Underscore.js - Web Code Geeks - 2026","description":"Recently I starting working in the Backbone.js framework which has dependency on the Underscore.js framework. Underscore is a JavaScript utility library","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.webcodegeeks.com\/javascript\/introduction-underscore-js\/","og_locale":"en_US","og_type":"article","og_title":"An Introduction To Underscore.js - Web Code Geeks - 2026","og_description":"Recently I starting working in the Backbone.js framework which has dependency on the Underscore.js framework. Underscore is a JavaScript utility library","og_url":"https:\/\/www.webcodegeeks.com\/javascript\/introduction-underscore-js\/","og_site_name":"Web Code Geeks","article_publisher":"https:\/\/www.facebook.com\/webcodegeeks","article_published_time":"2016-10-26T09:15:39+00:00","og_image":[{"width":150,"height":150,"url":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/js-logo.jpg","type":"image\/jpeg"}],"author":"Nick Brown","twitter_card":"summary_large_image","twitter_creator":"@webcodegeeks","twitter_site":"@webcodegeeks","twitter_misc":{"Written by":"Nick Brown","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.webcodegeeks.com\/javascript\/introduction-underscore-js\/#article","isPartOf":{"@id":"https:\/\/www.webcodegeeks.com\/javascript\/introduction-underscore-js\/"},"author":{"name":"Nick Brown","@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/1175cdbd7401877037d41c97acca4f5a"},"headline":"An Introduction To Underscore.js","datePublished":"2016-10-26T09:15:39+00:00","mainEntityOfPage":{"@id":"https:\/\/www.webcodegeeks.com\/javascript\/introduction-underscore-js\/"},"wordCount":548,"commentCount":0,"publisher":{"@id":"https:\/\/www.webcodegeeks.com\/#organization"},"image":{"@id":"https:\/\/www.webcodegeeks.com\/javascript\/introduction-underscore-js\/#primaryimage"},"thumbnailUrl":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/js-logo.jpg","keywords":["Underscore.js"],"articleSection":["JavaScript"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.webcodegeeks.com\/javascript\/introduction-underscore-js\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.webcodegeeks.com\/javascript\/introduction-underscore-js\/","url":"https:\/\/www.webcodegeeks.com\/javascript\/introduction-underscore-js\/","name":"An Introduction To Underscore.js - Web Code Geeks - 2026","isPartOf":{"@id":"https:\/\/www.webcodegeeks.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.webcodegeeks.com\/javascript\/introduction-underscore-js\/#primaryimage"},"image":{"@id":"https:\/\/www.webcodegeeks.com\/javascript\/introduction-underscore-js\/#primaryimage"},"thumbnailUrl":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/js-logo.jpg","datePublished":"2016-10-26T09:15:39+00:00","description":"Recently I starting working in the Backbone.js framework which has dependency on the Underscore.js framework. Underscore is a JavaScript utility library","breadcrumb":{"@id":"https:\/\/www.webcodegeeks.com\/javascript\/introduction-underscore-js\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.webcodegeeks.com\/javascript\/introduction-underscore-js\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.webcodegeeks.com\/javascript\/introduction-underscore-js\/#primaryimage","url":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/js-logo.jpg","contentUrl":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/js-logo.jpg","width":150,"height":150},{"@type":"BreadcrumbList","@id":"https:\/\/www.webcodegeeks.com\/javascript\/introduction-underscore-js\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.webcodegeeks.com\/"},{"@type":"ListItem","position":2,"name":"JavaScript","item":"https:\/\/www.webcodegeeks.com\/category\/javascript\/"},{"@type":"ListItem","position":3,"name":"An Introduction To Underscore.js"}]},{"@type":"WebSite","@id":"https:\/\/www.webcodegeeks.com\/#website","url":"https:\/\/www.webcodegeeks.com\/","name":"Web Code Geeks","description":"Web Developers Resource Center","publisher":{"@id":"https:\/\/www.webcodegeeks.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.webcodegeeks.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.webcodegeeks.com\/#organization","name":"Exelixis Media P.C.","url":"https:\/\/www.webcodegeeks.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","contentUrl":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","width":864,"height":246,"caption":"Exelixis Media P.C."},"image":{"@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/webcodegeeks","https:\/\/x.com\/webcodegeeks"]},{"@type":"Person","@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/1175cdbd7401877037d41c97acca4f5a","name":"Nick Brown","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/b61208cf418f78728a1d0dffb9f489dec39a58ece4d632843b414bd356207549?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/b61208cf418f78728a1d0dffb9f489dec39a58ece4d632843b414bd356207549?s=96&d=mm&r=g","caption":"Nick Brown"},"description":"I am a web application developer based out of Overland Park, KS. I have experience with .NET and developing single page applications with JavaScript. When I'm not coding, you can find me playing guitar, or being a father to my three children.","url":"https:\/\/www.webcodegeeks.com\/author\/nick-brown\/"}]}},"_links":{"self":[{"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/posts\/15006","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/users\/191"}],"replies":[{"embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/comments?post=15006"}],"version-history":[{"count":0,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/posts\/15006\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/media\/920"}],"wp:attachment":[{"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/media?parent=15006"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/categories?post=15006"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/tags?post=15006"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}