JSFiddle - React, Tailwind, and code Playground

by Kevin Faulhaber

HTML

<button id="start">Start</button>

JavaScript

var half_a_million = [];
/*
(x1,y1)
  +---+ (x2, y1)
  |   |
  |   |
  |   |
  +---+ (x2, y2)
(x1, y2)

*/
var rect = {
    x1: 100000,
    y1: 100000,
    y2: 300000,
    x2: 300000
};
var j = 500000;
for (var i = 0; i < 500000; i++) {
    half_a_million.push({
        a: i,
        b: j,
        c: 'test ' + i + ' ' + j
    });
    j -= 1;
}

var start;
var end;

function find(rect, list) {
    var d = new Date()
    var count = 0;
    start = d.getTime();
    for (var i = 0; i < half_a_million.length; i++) {
        if (half_a_million[i].a >= rect.x1 && half_a_million[i].a <= rect.x2 && half_a_million[i].b >= rect.y1 && half_a_million[i].b <= rect.y2) {
            //console.log(half_a_million[i].c + ' is a solution.');
            count += 1;
        }
    }
    var d2 = new Date();
    end = d2.getTime() - start;
    alert('Solutions found: ' + count + ' time it took: ' + end + ' milliseconds');
}
var start = document.getElementById('start');
start.onclick = function () {
    find(rect, half_a_million);
};