Immutable.js List of Maps to Map of Maps

Benchmark created by Theodore X. Pak on


Preparation HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/immutable/3.8.1/immutable.min.js"></script>

Setup

function listOfMapsToMapOfMaps1 (lists) {
      var result = lists.reduce(
        function (memo, item) {
          return memo.set(item.get('id'), item);
        },
        Immutable.Map()
      );
      return result;
    }
  
    function listOfMapsToMapOfMaps2 (lists) {
      var result = lists.reduce(
        function (memo, item) {
          memo[item.get('id')] = item;
          return memo;
        },
        {}
      );
      return Immutable.Map(result);
    }
    
    var arr = [
      {
        "_id": "58efe9ec8d4175a6bc06822c",
        "index": 0,
        "guid": "1c8526a5-b30a-4181-8287-7b5878f6e406",
        "isActive": true,
        "balance": "$1,544.68",
        "picture": "http://placehold.it/32x32",
        "age": 35,
        "eyeColor": "brown",
        "name": {
          "first": "Sonya",
          "last": "Kidd"
        },
        "company": "ISOTRACK",
        "email": "sonya.kidd@isotrack.org",
        "phone": "+1 (963) 590-3460",
        "address": "528 Hamilton Walk, Cucumber, New Hampshire, 1516",
        "about": "Fugiat proident irure eiusmod velit reprehenderit dolore qui. Amet adipisicing esse amet exercitation cillum qui ut elit sit do. Aliqua exercitation Lorem culpa deserunt. Eiusmod minim aliquip nulla est. Eu elit quis ullamco magna irure cupidatat tempor incididunt.",
        "registered": "Monday, March 6, 2017 3:58 AM",
        "latitude": "68.05665",
        "longitude": "-11.798636",
        "tags": [
          "quis",
          "in",
          "veniam",
          "nisi",
          "esse"
        ],
        "range": [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8,
          9
        ],
        "friends": [
          {
            "id": 0,
            "name": "Latisha Shannon"
          },
          {
            "id": 1,
            "name": "Marsh Aguirre"
          },
          {
            "id": 2,
            "name": "Chang Bass"
          }
        ],
        "greeting": "Hello, Sonya! You have 5 unread messages.",
        "favoriteFruit": "banana"
      },
      {
        "_id": "58efe9ecf9911aec1e869ec4",
        "index": 1,
        "guid": "0c4ed7f1-e78d-4083-b511-43de4f59cbc6",
        "isActive": true,
        "balance": "$1,592.00",
        "picture": "http://placehold.it/32x32",
        "age": 20,
        "eyeColor": "green",
        "name": {
          "first": "Jimenez",
          "last": "Wolf"
        },
        "company": "ROCKYARD",
        "email": "jimenez.wolf@rockyard.info",
        "phone": "+1 (807) 433-3035",
        "address": "361 Kenmore Court, Zeba, Palau, 6562",
        "about": "Aliquip non sunt aute culpa occaecat qui cillum. Nisi duis laborum excepteur esse ut veniam voluptate eiusmod pariatur nulla mollit ea id deserunt. Nulla ut consectetur labore officia et nostrud amet anim amet Lorem. Duis in aute labore elit enim nulla nisi. Incididunt aute amet mollit exercitation nisi velit deserunt in proident veniam irure culpa excepteur esse. Nulla cillum enim ea fugiat incididunt Lorem Lorem proident non anim eiusmod ut minim.",
        "registered": "Saturday, September 20, 2014 8:04 AM",
        "latitude": "3.001977",
        "longitude": "-166.80238",
        "tags": [
          "sit",
          "aute",
          "dolor",
          "commodo",
          "elit"
        ],
        "range": [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8,
          9
        ],
        "friends": [
          {
            "id": 0,
            "name": "Shirley Rosario"
          },
          {
            "id": 1,
            "name": "Bridgett Giles"
          },
          {
            "id": 2,
            "name": "Elinor Goff"
          }
        ],
        "greeting": "Hello, Jimenez! You have 5 unread messages.",
        "favoriteFruit": "apple"
      },
      {
        "_id": "58efe9ec094cd5e5898507ed",
        "index": 2,
        "guid": "dd2ef298-9d0e-4059-9b6e-4401e0070ea1",
        "isActive": true,
        "balance": "$3,441.20",
        "picture": "http://placehold.it/32x32",
        "age": 26,
        "eyeColor": "brown",
        "name": {
          "first": "Angelita",
          "last": "Mack"
        },
        "company": "ZEAM",
        "email": "angelita.mack@zeam.tv",
        "phone": "+1 (819) 597-2742",
        "address": "239 Strickland Avenue, Dunnavant, Pennsylvania, 6410",
        "about": "Tempor adipisicing reprehenderit adipisicing cillum nisi proident est ea incididunt laboris amet et cillum. Ipsum aliquip ea nisi elit. Laboris sunt nisi laborum ipsum. Ea qui fugiat aute aliqua sit est. Tempor proident cillum voluptate veniam ut veniam sint laborum officia in. Anim esse aute culpa elit ad aliquip elit reprehenderit cillum.",
        "registered": "Sunday, July 3, 2016 5:07 AM",
        "latitude": "85.816088",
        "longitude": "-77.377866",
        "tags": [
          "veniam",
          "ullamco",
          "nulla",
          "ea",
          "veniam"
        ],
        "range": [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8,
          9
        ],
        "friends": [
          {
            "id": 0,
            "name": "Eleanor Patterson"
          },
          {
            "id": 1,
            "name": "Theresa Stein"
          },
          {
            "id": 2,
            "name": "Frances Keller"
          }
        ],
        "greeting": "Hello, Angelita! You have 7 unread messages.",
        "favoriteFruit": "apple"
      },
      {
        "_id": "58efe9ec7b59be8ef597265d",
        "index": 3,
        "guid": "c93d4cb8-0283-48c6-8201-12538ee7dbf7",
        "isActive": true,
        "balance": "$3,907.61",
        "picture": "http://placehold.it/32x32",
        "age": 24,
        "eyeColor": "brown",
        "name": {
          "first": "Cheri",
          "last": "Oliver"
        },
        "company": "DADABASE",
        "email": "cheri.oliver@dadabase.biz",
        "phone": "+1 (979) 540-3341",
        "address": "726 Norman Avenue, Maxville, Wisconsin, 8723",
        "about": "Mollit consequat sint nostrud Lorem duis laboris aute ullamco. Quis sit sint ipsum et. Nostrud sit magna nisi anim est laborum ipsum ad quis. Nostrud veniam proident dolor minim officia voluptate aliqua.",
        "registered": "Friday, October 14, 2016 3:09 AM",
        "latitude": "20.877043",
        "longitude": "-152.402784",
        "tags": [
          "non",
          "irure",
          "eu",
          "et",
          "do"
        ],
        "range": [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8,
          9
        ],
        "friends": [
          {
            "id": 0,
            "name": "Pennington Hudson"
          },
          {
            "id": 1,
            "name": "Lourdes Hobbs"
          },
          {
            "id": 2,
            "name": "Rutledge Oneal"
          }
        ],
        "greeting": "Hello, Cheri! You have 8 unread messages.",
        "favoriteFruit": "banana"
      },
      {
        "_id": "58efe9ec5be5f0c3bd41e7f2",
        "index": 4,
        "guid": "3a504417-488c-4924-8bb4-43e334245966",
        "isActive": true,
        "balance": "$2,256.78",
        "picture": "http://placehold.it/32x32",
        "age": 40,
        "eyeColor": "brown",
        "name": {
          "first": "Dona",
          "last": "Macdonald"
        },
        "company": "TECHTRIX",
        "email": "dona.macdonald@techtrix.me",
        "phone": "+1 (823) 425-2633",
        "address": "607 Stockholm Street, Cumminsville, Alaska, 7288",
        "about": "Aliqua est adipisicing ipsum ex aute exercitation cillum aliqua in. Nostrud laborum duis occaecat officia non dolore veniam mollit enim. Non et dolor commodo irure sint.",
        "registered": "Saturday, August 16, 2014 4:56 AM",
        "latitude": "-48.259803",
        "longitude": "-57.984716",
        "tags": [
          "ea",
          "consequat",
          "eiusmod",
          "ex",
          "aliquip"
        ],
        "range": [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8,
          9
        ],
        "friends": [
          {
            "id": 0,
            "name": "Oliver Rojas"
          },
          {
            "id": 1,
            "name": "Terrell Ratliff"
          },
          {
            "id": 2,
            "name": "Bobbi Fuentes"
          }
        ],
        "greeting": "Hello, Dona! You have 6 unread messages.",
        "favoriteFruit": "strawberry"
      },
      {
        "_id": "58efe9ecc3539ad53926f0ac",
        "index": 5,
        "guid": "104f6878-8791-4a36-9077-a121aafc79db",
        "isActive": false,
        "balance": "$2,352.75",
        "picture": "http://placehold.it/32x32",
        "age": 33,
        "eyeColor": "brown",
        "name": {
          "first": "Jacobs",
          "last": "Christensen"
        },
        "company": "COMBOGENE",
        "email": "jacobs.christensen@combogene.name",
        "phone": "+1 (952) 421-2882",
        "address": "844 Duryea Court, Bison, Rhode Island, 6290",
        "about": "Ut fugiat laborum mollit anim sunt nisi commodo ipsum officia culpa. Amet pariatur excepteur et labore nostrud aliquip quis deserunt aute veniam veniam culpa nulla. Lorem esse consectetur culpa laborum tempor enim. Sit officia aliquip aliquip eu velit adipisicing adipisicing fugiat. Duis proident duis commodo incididunt officia culpa ea deserunt ea velit. Ad fugiat est quis fugiat voluptate in dolore sint pariatur non in.",
        "registered": "Wednesday, September 14, 2016 2:12 AM",
        "latitude": "75.28898",
        "longitude": "25.265743",
        "tags": [
          "amet",
          "amet",
          "commodo",
          "et",
          "mollit"
        ],
        "range": [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8,
          9
        ],
        "friends": [
          {
            "id": 0,
            "name": "Helen Wall"
          },
          {
            "id": 1,
            "name": "Darcy Pittman"
          },
          {
            "id": 2,
            "name": "Erickson Key"
          }
        ],
        "greeting": "Hello, Jacobs! You have 9 unread messages.",
        "favoriteFruit": "apple"
      },
      {
        "_id": "58efe9ecf32c2505ffb414a6",
        "index": 6,
        "guid": "361b83ff-86b3-44e0-b504-97257ee0a770",
        "isActive": true,
        "balance": "$1,590.33",
        "picture": "http://placehold.it/32x32",
        "age": 32,
        "eyeColor": "green",
        "name": {
          "first": "Isabel",
          "last": "Peters"
        },
        "company": "MOLTONIC",
        "email": "isabel.peters@moltonic.ca",
        "phone": "+1 (872) 506-3496",
        "address": "685 Navy Street, Odessa, Oklahoma, 5120",
        "about": "Dolor cillum officia velit incididunt laborum magna esse nulla et ea. Sunt minim incididunt pariatur consectetur fugiat sunt aliqua minim veniam labore. Laborum exercitation aliqua deserunt aliquip deserunt ut reprehenderit labore in. Labore duis dolor voluptate minim cillum occaecat ipsum ullamco. Est qui Lorem eiusmod quis enim magna ex.",
        "registered": "Sunday, February 1, 2015 1:41 AM",
        "latitude": "28.383978",
        "longitude": "164.809562",
        "tags": [
          "velit",
          "ad",
          "consequat",
          "commodo",
          "veniam"
        ],
        "range": [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8,
          9
        ],
        "friends": [
          {
            "id": 0,
            "name": "Barbra Ball"
          },
          {
            "id": 1,
            "name": "Herman Berg"
          },
          {
            "id": 2,
            "name": "Walton Morse"
          }
        ],
        "greeting": "Hello, Isabel! You have 7 unread messages.",
        "favoriteFruit": "banana"
      },
      {
        "_id": "58efe9ec8810ff70c984a24a",
        "index": 7,
        "guid": "86019830-cd51-47d4-90ae-e63143c7454b",
        "isActive": true,
        "balance": "$1,765.48",
        "picture": "http://placehold.it/32x32",
        "age": 33,
        "eyeColor": "blue",
        "name": {
          "first": "Erika",
          "last": "Emerson"
        },
        "company": "VOIPA",
        "email": "erika.emerson@voipa.us",
        "phone": "+1 (917) 437-3878",
        "address": "262 Rockwell Place, Swartzville, West Virginia, 5699",
        "about": "Mollit irure est labore nisi quis sit est aute magna esse eiusmod proident minim. Lorem exercitation reprehenderit do veniam labore mollit et. Commodo est anim in fugiat nostrud exercitation officia culpa ea eiusmod aute dolor.",
        "registered": "Wednesday, December 28, 2016 9:29 PM",
        "latitude": "11.710574",
        "longitude": "-43.108186",
        "tags": [
          "excepteur",
          "ipsum",
          "est",
          "excepteur",
          "in"
        ],
        "range": [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8,
          9
        ],
        "friends": [
          {
            "id": 0,
            "name": "Lola Bonner"
          },
          {
            "id": 1,
            "name": "Powell Lang"
          },
          {
            "id": 2,
            "name": "Jillian Shields"
          }
        ],
        "greeting": "Hello, Erika! You have 8 unread messages.",
        "favoriteFruit": "banana"
      },
      {
        "_id": "58efe9ec98cfd23c7827d07f",
        "index": 8,
        "guid": "a3edb94e-146f-4127-854f-fc99cc64a382",
        "isActive": false,
        "balance": "$1,434.96",
        "picture": "http://placehold.it/32x32",
        "age": 24,
        "eyeColor": "brown",
        "name": {
          "first": "Rodgers",
          "last": "Huber"
        },
        "company": "QUARX",
        "email": "rodgers.huber@quarx.co.uk",
        "phone": "+1 (835) 541-3829",
        "address": "345 Seba Avenue, Trinway, Maine, 4382",
        "about": "In aliqua nulla cupidatat ullamco eiusmod ea quis officia incididunt fugiat ex. Nulla officia velit mollit ullamco dolor culpa fugiat magna elit aliqua. Pariatur officia occaecat laboris voluptate sint ad. Amet laborum veniam ad culpa non consectetur commodo ea et aute reprehenderit magna incididunt quis.",
        "registered": "Saturday, September 20, 2014 9:53 AM",
        "latitude": "32.297372",
        "longitude": "-89.743917",
        "tags": [
          "dolore",
          "ipsum",
          "Lorem",
          "velit",
          "occaecat"
        ],
        "range": [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8,
          9
        ],
        "friends": [
          {
            "id": 0,
            "name": "Woodward Bernard"
          },
          {
            "id": 1,
            "name": "Britt Hendrix"
          },
          {
            "id": 2,
            "name": "Lynda Woods"
          }
        ],
        "greeting": "Hello, Rodgers! You have 6 unread messages.",
        "favoriteFruit": "banana"
      }
    ];
    
    var testData = Immutable.fromJS(arr)

Test runner

Ready to run.

Testing in
TestOps/sec
Updating Map each iteration
listOfMapsToMapOfMaps1(testData);
ready
Creating Map at the end
listOfMapsToMapOfMaps2(testData);
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.

  • Revision 1: published by Theodore X. Pak on