Array.indexOf vs For loop (v30)

Revision 30 of this benchmark created on


Setup

var array1 = 
  [
  "v1",
  "v2",
  "v3",
  "v4",
  "v5",
  "v6",
  "v7",
  "v8",
  "v9",
  "v10",
  "v11",
  "v12",
  "v13",
  "v14",
  "v15",
  "v16",
  "v17",
  "v18",
  "v19",
  "v20",
  "v21",
  "v22",
  "v23",
  "v24",
  "v25",
  "v26",
  "v27",
  "v28",
  "v29",
  "v30",
  "v31",
  "v32",
  "v33",
  "v34",
  "v35",
  "v36",
  "v37",
  "v38",
  "v39",
  "v40",
  "v41",
  "v42",
  "v43",
  "v44",
  "v45",
  "v46",
  "v47",
  "v48",
  "v49",
  "v50",
  "v51",
  "v52",
  "v53",
  "v54",
  "v55",
  "v56",
  "v57",
  "v58",
  "v59",
  "v60",
  
    "value1",
    "value2",
    "value3",
    "value4",
    "value5",
    "value6",
    "value7",
    "value8",
    "value9",
    "value10",
    "value11",
    "value12",
    "value13",
    "value14",
    "value15",
    "value16",
    "value17",
    "value18",
    "value19",
    "value20"
  ];
  var array2 =
  ["v1",
  "v2",
  "v3",
  "v4",
  "v5",
  "v6",
  "v7",
  "v8",
  "v9",
  "v10",
  "v11",
  "v12",
  "v13",
  "v14",
  "v15",
  "v16",
  "v17",
  "v18",
  "v19",
  "v20",
  "v21",
  "v22",
  "v23",
  "v24",
  "v25",
  "v26",
  "v27",
  "v28",
  "v29",
  "v30",
  "v31",
  "v32",
  "v33",
  "v34",
  "v35",
  "v36",
  "v37",
  "v38",
  "v39",
  "v40",
  "v41",
  "v42",
  "v43",
  "v44",
  "v45",
  "v46",
  "v47",
  "v48",
  "v49",
  "v50",
  "v51",
  "v52",
  "v53",
  "v54",
  "v55",
  "v56",
  "v57",
  "v58",
  "v59",
  "v60",
    "value1",
    "value10",
    "value20"
  ];

Test runner

Ready to run.

Testing in
TestOps/sec
new0
for(var i = 0, len = array1.length; i < len; i++) {
  var result = array2.indexOf(array1[i]) !== -1;
}
ready
For loop
for(var i = 0, len = array1.length; i < len; i++)
{
  var value = array1[i];
  var result = false;

  for(var j = 0, len = array2.length; j < len; j++)
  {
    if(value === array2[j])
    {
       result = true;
       break;
    }
  }
}
ready
For loop without break
for(var i = 0, len = array1.length; i < len; i++)
{
  var value = array1[i];
  var result = false;

  for(var j = 0, len = array2.length; j < len; j++)
  {
    if(value === array2[j])
    {
       result = true;
    }
  }
}
ready
new1
for(var i = 0, len = array2.length; i < len; i++) {
  var result = array1.indexOf(array2[i]) !== -1;
}
ready
Array.indexOf()
for(var i = 0, len = array1.length; i < len; i++)
{
  var value = array1[i];
  var result = (array2.indexOf(value) !== -1);
}
ready

Revisions

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