JSFiddle - React, Tailwind, and code Playground

by oceog

HTML

<SPAN id=body></SPAN>

JavaScript

arr1 = [2, 3, 6, 8, 9, 11, 98];
arr2 = [1, 6, 7, 9, 48, 49, 50];
Q= 43;

var max=result= arr1[arr1.length-1]*arr2[arr2.length-1]+1;
var cursor= arr2.length-1;
for (var i in arr1) {
    while (arr1[i]*arr2[cursor] > Q)
        cursor--;    
    var tmp = [
        Math.abs(Q-arr1[i]*arr2[cursor]),
        Math.abs(Q-arr1[i]*arr2[cursor+1]),
        Math.abs(Q-result)];
    if (cursor==arr2.length-1) tmp[1]=max+1;    
    result= [
        arr1[i]*arr2[cursor],
        arr1[i]*arr2[cursor+1],
        result][tmp.indexOf(_.min(tmp))];    
};
body.innerHTML=result;