JSFiddle - React, Tailwind, and code Playground

JavaScript

var data=[];
for (var i =0; i < 1000; i++) data.push([Math.round(Math.random()*100), Math.round(Math.random()*100)]);

function foo() {
    console.time('profile');
    var eqs = {};
    for (var i=0; i<data.length; ++i) {
        for (var j=0; j<i; ++j) {
            var di = data[i];
            var dj = data[j];
            var slope, intercept;
            if (dj[0] == di[0]) {
                slope=Infinity;
                intercept = dj[1];
            } else {
                slope = (dj[1]-di[1])/(dj[0]-di[0]);
                intercept = di[1]-slope*di[0];
            }
            var key = slope+'.'+intercept;
            if (key in eqs) {
                var set = eqs[key];
                if (set[set.length-1] != i)
                    set.push(i);
            } else
                eqs[key] = [j, i];
        }
    }
    
    var best = [];
    for (var key in eqs)
        if (eqs.hasOwnProperty(key))
            if (eqs[key].length > best.length)
                 best = eqs[key];
    console.timeEnd('profile');
    return;
    for (var i=0; i<best.length; ++i)
    console.log(data[best[i]]);
}

for (var i=0; i<5; ++i) foo();