Last active
September 11, 2020 09:13
-
-
Save wooandoo/88e1a88e98dfab56cbb7cb7f3cff426e to your computer and use it in GitHub Desktop.
destructuring spread return array vs object (http://jsbench.github.io/#88e1a88e98dfab56cbb7cb7f3cff426e) #jsbench #jsperf
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <!DOCTYPE html> | |
| <html> | |
| <head> | |
| <meta charset="utf-8"/> | |
| <title>destructuring spread return array vs object</title> | |
| <script src="https://cdnjs.cloudflare.com/ajax/libs/benchmark/1.0.0/benchmark.min.js"></script> | |
| <script src="./suite.js"></script> | |
| </head> | |
| <body> | |
| <h1>Open the console to view the results</h1> | |
| <h2><code>cmd + alt + j</code> or <code>ctrl + alt + j</code></h2> | |
| </body> | |
| </html> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| "use strict"; | |
| (function (factory) { | |
| if (typeof Benchmark !== "undefined") { | |
| factory(Benchmark); | |
| } else { | |
| factory(require("benchmark")); | |
| } | |
| })(function (Benchmark) { | |
| var suite = new Benchmark.Suite; | |
| Benchmark.prototype.setup = function () { | |
| const test_return_array = (value) => { | |
| return [ value -1, value, value +1] | |
| } | |
| const test_return_object = (value) => { | |
| return { | |
| previous: value -1, | |
| value, | |
| next: value +1 | |
| } | |
| } | |
| }; | |
| suite.add("const [ previous, value, next ] = test_return_array(10)", function () { | |
| const [ previous, value, next ] = test_return_array(10) | |
| const result = previous + value + next | |
| }); | |
| suite.add("const { previous, value, next } = test_return_object(10)", function () { | |
| const { previous, value, next } = test_return_object(10) | |
| const result = previous + value + next | |
| }); | |
| suite.add("const { previous: a, value: b, next: c } = test_return_object(10)", function () { | |
| const { previous: a, value: b, next: c } = test_return_object(10) | |
| const result = a + b + c | |
| }); | |
| suite.on("cycle", function (evt) { | |
| console.log(" - " + evt.target); | |
| }); | |
| suite.on("complete", function (evt) { | |
| console.log(new Array(30).join("-")); | |
| var results = evt.currentTarget.sort(function (a, b) { | |
| return b.hz - a.hz; | |
| }); | |
| results.forEach(function (item) { | |
| console.log((idx + 1) + ". " + item); | |
| }); | |
| }); | |
| console.log("destructuring spread return array vs object"); | |
| console.log(new Array(30).join("-")); | |
| suite.run(); | |
| }); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment