comparing two arrays for equality (v3)

Revision 3 of this benchmark created on


Setup

var arr1 = ["9c0bc331ec8586d46b6a0354a9ed4db9", "38af1d231ae1b35a7b2eba0c2ad23a20", "1b0293260cf1cbbdfcd60963a48147ee", "0a39f96c8fc28ded9fcdaf5651d887b0", "f3d70d5205ac637055ed2f5ffa7f1376", "7cc3c9023ea2ac83e0e8c9d46a323600", "7a8d323c4b2d3dcb2bb8916191f57a08", "4c2416e4d7b931565c86458b75a67e3f", "5dc4af2527e49141ccd6deee1a99c52c", "570afe93d8c6257f658e72c22826a2b5", "7cd7155042d7429093f117b660b7566b", "e6a8ee11027da86ea4ca82f4cf121244", "93b2ccab40851b37a5a790995b858c31", "ba12ef8b49a4156953b56adbcf1e69e5", "668c0457436730ed575c4830fc3a9a8c", "9045abb39587e9721e133c995acf62bb", "fe08a92cf4794ad4f995c6138a5c2ee1", "50fc0d8e829f0fe1ed848ec1d551dddb", "225a1a38261dfe4874b5a5f66347b017", "803ee12a21026608f3023917604555d6", "4c6c5c8d6014e3df0293fb117ce5e117", "9e8d65b8af45ff1bc1b810beaedc04e5", "1a1cc672862d7238c39471c01dfc0dc3", "5588561f2b7813e7767f9d7515ffa687", "7c1a91ae874bdbd8323fb8871afeb9b9", "bf4ecc5bf69ca6d8de25632e9b332dd1", "85218d05eb31613d2e784cccd0805fe8", "6a571df27b3b461ad526a9c616aef932", "18fa48452f3d0371087d016c14944083", "3f669c1b0910b1bcb2ef40818ecec596", "67a278c5027e2239f785eb328442829e", "f0cb9f73e1128f374b865dc557253b6e", "6d4444ca0d55c021bc37da95c2c2c2fc", "3b38ec3c9d31b3a459bdfde2203b876e", "cab836fbb88e6ad4de66fefd43a4bfa0", "d3e2a9bebb940e7c879a258c9df9068c", "6b9c94b54a2ff172296fd1b831e2f0f0", "6bf84243630e07bedd3ed9e723704d4c", "bd2b0129cf9ace59856d0c9dd518f206", "7844de45f08d724cb341734cbf60af67", "c3abf85c76c4361b471384cf48923bcd", "75d3a75a8ff4988ad96923796088fd6b", "140488e0abdcac64b041ecfef6495e0d", "76c81a6c3fc2bb67704629c61f3dda7b", "b41a6b8ae1dccd8f6dacf5d5d50e64f1", "fd71991dabad164f216b84802ccef932", "637398c4d6277c2ca023f881df69d006", "30c2807b2cf153fdf8ef0e5ad392855b", "de188c76995fd90c5d3d4389ddb2cac0", "0cc39fc22ba5d827aaed6bb52965e4c0", "057d7b5430be65c313a8372e06f7b4c3", "76f4bab99b2bf6eb0baece57c3aa8330", "f4527c6d9d9265aab969f5ed7db807f0", "6f21728a3357d19d367b70efb068d37b", "a43fe5310bc40ce4ea214f8371a1109f", "a2fe180c87e6f161a0b6b6f59ed70670", "697b856c526864a3f9f89a92057fb6fb", "70082615da341cef08ff3eda80c15168", "529b40afb668c61bc6719b4e441777aa", "7425b341de6e7f9970be3a907741cb75", "63d00cf329ed6e7c861185ead2681a3e", "7abc98f49e26ca8a98865f22bc086c38", "1c41599c26509bd8657acf5afb9c5142", "571cb1ce69719bd92691a5a554a1b04a", "66194eda062518bd18ea5c01f9f2baad", "436bd34d632e82357c1976b7c5543b2d", "2b60e80b6d05e05e95b3c3b4f9fe51d5", "c77a687564ffa9846da358782aec7086", "7a7df794681506316bd8c437290985fb", "9150daecc13224e02b61976a52f753bd", "6813c83030bc64f8d9609d4f4fe719e5", "2b388c0c5471e2179e2db5958c11b540", "13ea27b42e52f50a0db522c3a62e0a0e", "a23b350d42449d1ee5cb70591806e098", "28f1ff9bede1414b6543f5020f8ad5e7", "16a00a550190d3e54cd9bee86edcb8e9", "6cea8ed090bfb2046519eba9ac14d523", "a2a8bf9d599e6e80d094033217a82263", "52f68c1b088113936f87fe7c8cb86bec", "1f61dc4ca86730ae304fbaaea0d72360", "ea5513fef0dc978d4df7a37b65caa854", "b504606a53a6b558cea0d392cb5ecada", "9bda418a363aa22dfecbe9ba9c6558fd", "b75c547be06c6b601aa1bc05a9dfa987", "9ddd3dc42bf1087ac068ce16121965cc", "76ecb2d82f773cd5762c76192bad9ce6", "4ea583b700de2c6cf650d5f71cee319e", "c9f63e912ff1b0a67f9acb227c634194", "4b169809d5b6a217223c8f4967f64f9c", "969b7750249b6437cb062d8fb1520aca", "ba1c8e6af5bd107cfdfe697880a7dab4", "926e840b3b9ee0315841cd3ea77265bc", "a7384138b449c3ef17aaeb7f936a1fc3", "89df4c35bfd035c389104f8af742120e", "9ed6d62afb2daf26bd93c8ab86d3f54a", "65eea698c2ae6e738a7effdb45bb70cf", "fddbafa957265bf308e41113c8df3a6d", "8716c6e52211303153de41a6ccadf639", "3c7c7208d9ce32b595d57d9fa96233b5", "b8376fcd91e0f193e9491c7464ae5c61"],
      arr2 = ["6cea8ed090bfb2046519eba9ac14d523", "67a278c5027e2239f785eb328442829e", "057d7b5430be65c313a8372e06f7b4c3", "6f21728a3357d19d367b70efb068d37b", "bf4ecc5bf69ca6d8de25632e9b332dd1", "a2fe180c87e6f161a0b6b6f59ed70670", "803ee12a21026608f3023917604555d6", "9ed6d62afb2daf26bd93c8ab86d3f54a", "18fa48452f3d0371087d016c14944083", "89df4c35bfd035c389104f8af742120e", "6d4444ca0d55c021bc37da95c2c2c2fc", "a23b350d42449d1ee5cb70591806e098", "7425b341de6e7f9970be3a907741cb75", "76c81a6c3fc2bb67704629c61f3dda7b", "65eea698c2ae6e738a7effdb45bb70cf", "75d3a75a8ff4988ad96923796088fd6b", "7cc3c9023ea2ac83e0e8c9d46a323600", "7844de45f08d724cb341734cbf60af67", "9c0bc331ec8586d46b6a0354a9ed4db9", "9bda418a363aa22dfecbe9ba9c6558fd", "7a8d323c4b2d3dcb2bb8916191f57a08", "b8376fcd91e0f193e9491c7464ae5c61", "3f669c1b0910b1bcb2ef40818ecec596", "969b7750249b6437cb062d8fb1520aca", "1c41599c26509bd8657acf5afb9c5142", "fd71991dabad164f216b84802ccef932", "f3d70d5205ac637055ed2f5ffa7f1376", "66194eda062518bd18ea5c01f9f2baad", "7abc98f49e26ca8a98865f22bc086c38", "926e840b3b9ee0315841cd3ea77265bc", "ba1c8e6af5bd107cfdfe697880a7dab4", "3c7c7208d9ce32b595d57d9fa96233b5", "fddbafa957265bf308e41113c8df3a6d", "1a1cc672862d7238c39471c01dfc0dc3", "7cd7155042d7429093f117b660b7566b", "0a39f96c8fc28ded9fcdaf5651d887b0", "5588561f2b7813e7767f9d7515ffa687", "52f68c1b088113936f87fe7c8cb86bec", "30c2807b2cf153fdf8ef0e5ad392855b", "4c6c5c8d6014e3df0293fb117ce5e117", "ea5513fef0dc978d4df7a37b65caa854", "28f1ff9bede1414b6543f5020f8ad5e7", "a43fe5310bc40ce4ea214f8371a1109f", "bd2b0129cf9ace59856d0c9dd518f206", "cab836fbb88e6ad4de66fefd43a4bfa0", "9045abb39587e9721e133c995acf62bb", "9e8d65b8af45ff1bc1b810beaedc04e5", "d3e2a9bebb940e7c879a258c9df9068c", "668c0457436730ed575c4830fc3a9a8c", "fe08a92cf4794ad4f995c6138a5c2ee1", "2b60e80b6d05e05e95b3c3b4f9fe51d5", "7a7df794681506316bd8c437290985fb", "76ecb2d82f773cd5762c76192bad9ce6", "571cb1ce69719bd92691a5a554a1b04a", "436bd34d632e82357c1976b7c5543b2d", "a2a8bf9d599e6e80d094033217a82263", "50fc0d8e829f0fe1ed848ec1d551dddb", "4c2416e4d7b931565c86458b75a67e3f", "70082615da341cef08ff3eda80c15168", "4ea583b700de2c6cf650d5f71cee319e", "3b38ec3c9d31b3a459bdfde2203b876e", "b504606a53a6b558cea0d392cb5ecada", "13ea27b42e52f50a0db522c3a62e0a0e", "6bf84243630e07bedd3ed9e723704d4c", "637398c4d6277c2ca023f881df69d006", "38af1d231ae1b35a7b2eba0c2ad23a20", "16a00a550190d3e54cd9bee86edcb8e9", "529b40afb668c61bc6719b4e441777aa", "f0cb9f73e1128f374b865dc557253b6e", "c9f63e912ff1b0a67f9acb227c634194", "0cc39fc22ba5d827aaed6bb52965e4c0", "c3abf85c76c4361b471384cf48923bcd", "93b2ccab40851b37a5a790995b858c31", "b41a6b8ae1dccd8f6dacf5d5d50e64f1", "ba12ef8b49a4156953b56adbcf1e69e5", "1b0293260cf1cbbdfcd60963a48147ee", "6a571df27b3b461ad526a9c616aef932", "9ddd3dc42bf1087ac068ce16121965cc", "140488e0abdcac64b041ecfef6495e0d", "8716c6e52211303153de41a6ccadf639", "c77a687564ffa9846da358782aec7086", "4b169809d5b6a217223c8f4967f64f9c", "7c1a91ae874bdbd8323fb8871afeb9b9", "63d00cf329ed6e7c861185ead2681a3e", "697b856c526864a3f9f89a92057fb6fb", "225a1a38261dfe4874b5a5f66347b017", "9150daecc13224e02b61976a52f753bd", "85218d05eb31613d2e784cccd0805fe8", "a7384138b449c3ef17aaeb7f936a1fc3", "de188c76995fd90c5d3d4389ddb2cac0", "570afe93d8c6257f658e72c22826a2b5", "b75c547be06c6b601aa1bc05a9dfa987", "2b388c0c5471e2179e2db5958c11b540", "6b9c94b54a2ff172296fd1b831e2f0f0", "f4527c6d9d9265aab969f5ed7db807f0", "e6a8ee11027da86ea4ca82f4cf121244", "5dc4af2527e49141ccd6deee1a99c52c", "6813c83030bc64f8d9609d4f4fe719e5", "1f61dc4ca86730ae304fbaaea0d72360", "76f4bab99b2bf6eb0baece57c3aa8330"];
    
    function isEqualNico(search1, search2) {
      if ((search1.length != search2.length) || (search1 == null || search2 == null))
        return false
    
      var a = search1.sort(),
        b = search2.sort(),
        areEqual = true;
    
      for (var i = 0; i < a.length; i++) {
        if (a[i] != b[i]) {
          areEqual = false;
          break;
        }
      }
      return areEqual;
    }
    
    var isEqual = function(arr1, arr2) {
      if (arr1.length !== arr2.length) {
        return false;
      } else {
        var holder = {},
          i = 0,
          l = arr1.length,
          j = 0,
          l2 = arr2.length;
        for (; i < l; i++)
          holder[arr1[i]] = true;
        for (; j < l2; j++) {
          if (!(arr2[j] in holder)) return false;
        }
        return true;
      }
    }
    
      function isArrayEqualMCasey(firstArray, secondArray) {
        if (firstArray === secondArray) return true;
        if (firstArray == null || secondArray == null) return false;
        if (firstArray.length != secondArray.length) return false;
    
        // optional - sort the arrays
        firstArray.sort();
        secondArray.sort();
    
        for (var i = 0; i < firstArray.length; ++i) {
          if (firstArray[i] !== secondArray[i]) return false;
        }
        return true;
      }
    
      function isEqualSome(a1, a2) {
        return (
          a1.length === a2.length && !a1.some(function(e, idx) {
            return a2[idx] !== e;
          })
        );
      };

Test runner

Ready to run.

Testing in
TestOps/sec
luxelin
isEqual(arr1, arr2);
ready
mcasey
isArrayEqualMCasey(arr1, arr2);
ready
Nicolae Olariu
isEqualNico(arr1, arr2)
ready
Using Array.some()
isEqualSome(arr1, arr2)
ready

Revisions

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