JavaScript. Two Dimensional Arrays

Two dimensional arrays are everywhere. For instance, all data coming from a database table would probably find its way to you as a two dimensional array. Here is an example of one:


[ 
    { "id":1, "first_name":"Tinna", "last_name":"Donne", }
    { "id":2, "first_name":"Joanne", "last_name":"Smith", }
]

 

Working with 2 dimensional arrays in JavaScript is not the nicest of experience. The standard Array functions do not provide anything out of the box to help with.

Here are a few functions, attached to the Array prototype, which can make your life easier, when sorting through two dimensional arrays.

 

Array.prototype.selectOne = function (where) {

    var filtered = this.selectWhere(where);

    if (filtered.length > 0) {

         return filtered[0];

      }

     return null;

};

Array.prototype.selectWhere = function (where) {

    var columnName = where[0];

    var comparator = where[1];

    var compareValue = where[2];

    var filtered = [];

     for (var i = 0; i < this.length; i++) {

        var row = this[i];

        if (row[columnName] == compareValue) { // Leave as is, do not use "==="

             filtered.push(row);

         }

    }

    return filtered;

};

Here is an example how to use:


// Get the person with ID=2
var person = people.selectOne([&#39;id&#39;,&#39;=&#39;,&#39;2&#39;]);

// Get the person with last name Smith
var person = people.selectOne([&#39;last_name&#39;,&#39;=&#39;,&#39;Smith&#39;]);

// Get all the people whose first name is Joanne
var joannes = people.selectWhere([&#39;last_name&#39;,&#39;=&#39;,&#39;Smith&#39;]);

 

 

Loading blog_post_recommendations...