jsPerf.app is an online JavaScript performance benchmark test runner & jsperf.com mirror. It is a complete rewrite in homage to the once excellent jsperf.com now with hopefully a more modern & maintainable codebase.
jsperf.com URLs are mirrored at the same path, e.g:
https://jsperf.com/negative-modulo/2
Can be accessed at:
https://jsperf.app/negative-modulo/2
<select multiple="multiple">
<option value="1">1</option>
<option value="2">2</option>
<option value="3" selected="selected">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8" selected="selected">8</option>
<option value="9">9</option>
<option value="10">10</option>
</select>
<script>
// Return an array of the selected opion values
// select is an HTML select element
function getSelectValues1(select) {
var result = [];
var options = select && select.options;
var opt;
for (var i=0, iLen=options.length; i<iLen; i++) {
opt = options[i];
if (opt.selected) {
result.push(opt.value || opt.text);
}
}
return result;
}
function getSelectValues2(select) {
return Array.prototype.map.call(select.selectedOptions, function(a) {return a.value;});
}
function getSelectValues3(select) {
var result = [];
var options = select && select.selectedOptions;
for (var i=0, iLen=options.length; i<iLen; i++) {
result.push(options[i].value || options[i].text);
}
return result;
}
</script>
var select = document.querySelector('select'),
i, len, selected;
delete select;
delete i;
delete len;
delete selected;
Ready to run.
Test | Ops/sec | |
---|---|---|
For Loop on Options |
| ready |
Map of SelectedOptions |
| ready |
For Loop of SelectedOptions |
| ready |
You can edit these tests or add more tests to this page by appending /edit to the URL.