v1
- by dodudodudododooo 3/20/202100
Setup HTML - click to add setup HTML
disable setup JavaScript
Setup JavaScript
var ids = new Array(150000).fill(0).map((_, i) => i + 1)

var array = []
for (let i = 0; i < 50000; i++)
  array.push({name: `Sally${i}`, quoteNumber: ids.splice(Math.floor(Math.random() * (ids.length - 1)), 1)[0] });


function foo_forLoop(quotes, limit) {
  let winner = null;
  let winningQuote = null;
  for (let {name, quoteNumber} of quotes) {
    if (quoteNumber > limit)
      continue;
    if (winningQuote === null || winningQuote < quoteNumber) {
      winner = name;
      winningQuote = quoteNumber;
    }
  }
  return winner;
}

function Foo_reduceFind2(array, givenNum) {
	return array.reduce((pv, cv) => cv.quoteNumber <= givenNum && cv.quoteNumber > (pv?.quoteNumber ?? 0) ? cv : pv, null)
}

function foo_forLoop2(quotes, limit) {
  let found = null;
  
  for(let i = 0; i < quotes.length; i++) {
  	if (quotes[i].quoteNumber > limit)
      continue;
	
    if (found === null || found.quoteNumber < quotes[i].quoteNumber)
      found = quotes[i];
  }
  
  return found;
}

function foo_forLoop4(quotes, limit) {
  let winner = null;
  let winningQuote = null;
  
  for(let i = 0; i < quotes.length; i++) {
  	if (quotes[i].quoteNumber > limit)
      continue;
	
    if (winningQuote === null || winningQuote < quotes[i].quoteNumber) {
		winner = quotes[i].name;
		winningQuote = quotes[i].quoteNumber;
	}
  }
  
  return winner ;
}

function foo_forLoop6(quotes, limit) {
  let winner = null;
  let winningQuote = 0;
  
  const limit_plus_one = limit + 1;
  
  for(let i = 0; i < quotes.length; i++) {
  	const quoteNumber = quotes[i].quoteNumber;
  	if(((quoteNumber < limit_plus_one) * quoteNumber) > winningQuote) {
  		winningQuote = quoteNumber ;
  		winner = quotes[i].name;
	}
  }
  
  return winner;
}
delete caserun single casemove downdrag and drop case


ready



foo_forLoop(array, 50000);
delete caserun single casemove upmove downdrag and drop case


ready



Foo_reduceFind2(array,50000)
delete caserun single casemove upmove downdrag and drop case


ready



foo_forLoop2(array, 50000)
delete caserun single casemove upmove downdrag and drop case


ready



foo_forLoop4(array, 50000)
delete caserun single casemove updrag and drop case


ready



foo_forLoop6(array, 50000)
Test Case - click to add another test case
Teardown JS - click to add teardown JavaScript
Output (DOM) - click to monitor output (DOM) while test is running
RUN