v1
8/13/2021 by victor-homyakov -00
disable setup HTML
Setup HTML
<script src="https://cdn.jsdelivr.net/npm/lodash@4.17.21/lodash.min.js"></script>
disable setup JavaScript
Setup JavaScript
const array = [];
const LENGTH = 100; // 100, 1000, 10000, 100000
for (let i = 0; i < LENGTH; i++) array.push(i - LENGTH / 2);

delete caserun single casemove downdrag and drop case


ready



let result = _.transform(array, function(result, n) {
	result.sum += n;
	// break on numbers >= 0
	if (n >= 0) return false;
}, {sum: 0});

delete caserun single casemove updrag and drop case


ready



const BREAK_ERROR = 'BREAK';
let result = {sum: 0};
try {
    array.reduce(function(_, n) {
	    result.sum += n;
	    if (n >= 0) throw new Error(BREAK_ERROR);
    }, undefined);
} catch (e) {
	if (e.message === BREAK_ERROR) {
		// ignore our error
	} else {
		// rethrow other errors
		result = undefined;
		throw e;
	}
}

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