Skip to content

Instantly share code, notes, and snippets.

@UpperCod
Created June 17, 2020 14:00
Show Gist options
  • Save UpperCod/ecd14acb51663c903ff9202688fa6090 to your computer and use it in GitHub Desktop.
Save UpperCod/ecd14acb51663c903ff9202688fa6090 to your computer and use it in GitHub Desktop.
reduce, for of, for length
/**
* test peflink
* {@link https://perf.link/#eyJpZCI6IjYxcTQzOXdrd2J5IiwidGl0bGUiOiJGaW5kaW5nIG51bWJlcnMgaW4gYW4gYXJyYXkgb2YgMTAwMCIsImJlZm9yZSI6ImNvbnN0IGRhdGEgPSBbLi4uQXJyYXkoMTAwMCkua2V5cygpXS5tYXAoKHByb3ApID0%2BICh7XG4gIHByb3AsXG4gIHZhbHVlOiBNYXRoLnJhbmRvbSgpLFxufSkpOyIsInRlc3RzIjpbeyJuYW1lIjoiVHJhbnNmb3JtIGEgbWFwIG9mIHByb3BzIGFuZCB2YWx1ZXMgdG8gYW4gb2JqZWN0IHVzaW5nIHJlZHVjZSIsImNvZGUiOiJjb25zdCBuZXh0RGF0YSA9IGRhdGEucmVkdWNlKChuZXh0RGF0YSwgeyBwcm9wLCB2YWx1ZSB9KSA9PiB7XG4gIG5leHREYXRhW3Byb3BdID0gdmFsdWU7XG4gIHJldHVybiBuZXh0RGF0YTtcbn0sIHt9KTsiLCJydW5zIjpbNDgzMyw1NjY2LDU2NjYsODUwMCw1MTY2LDU1MDAsNjE2Niw1NjY2LDkzMzMsNjE2Niw1MDAwLDU2NjYsNjAwMCw1NjY2LDQ2NjYsNTgzMyw4NjY2LDYxNjYsNjMzMyw3MzMzLDU2NjYsNTY2NiwxMTUwMCw2MzMzLDcwMDAsNDY2Niw1NjY2LDExMDAwLDcwMDAsOTAwMCw1NTAwLDU2NjYsODE2Niw1NjY2LDY4MzMsNTY2Niw5MzMzLDQwMDAsNTY2Niw2NTAwLDc2NjYsNDgzMyw1MTY2LDExNTAwLDU4MzMsNTY2NiwxMDY2Niw3MzMzLDU2NjYsNTY2Niw1NjY2LDg4MzMsODgzMyw1NjY2LDY1MDAsNTAwMCw3MTY2LDk2NjYsNDE2Niw4MTY2LDU2NjYsNTY2Niw4MTY2LDQxNjYsNTY2Niw3MDAwLDU2NjYsOTUwMCw5NjY2LDU2NjYsNzE2Niw4MDAwLDU2NjYsODgzMyw2MDAwLDM2NjYsNTY2Niw4MDAwLDU2NjYsNjUwMCw1NjY2LDgzMzMsODMzMyw1NjY2LDgzMzMsNTUwMCw1MzMzLDc4MzMsOTE2Niw1NjY2LDY4MzMsNzE2Niw2NTAwLDc4MzMsNzAwMCw3MzMzLDU2NjYsNTE2Niw1NjY2LDgzMzNdLCJvcHMiOjY2OTR9LHsibmFtZSI6IlRyYW5zZm9ybSBhIG1hcCBvZiBwcm9wcyBhbmQgdmFsdWVzIHRvIGFuIG9iamVjdCB1c2luZyBmb3Igb2YiLCJjb2RlIjoiY29uc3QgbmV4dERhdGEgPSB7fTtcbmZvciAobGV0IHsgcHJvcCwgdmFsdWUgfSBvZiBkYXRhKSB7XG4gIG5leHREYXRhW3Byb3BdID0gdmFsdWU7XG59IiwicnVucyI6WzIwMDAsMjAwMCwyMDAwLDIwMDAsMjAwMCwyMDAwLDIwMDAsMjAwMCwyMDAwLDIwMDAsMjAwMCwyMDAwLDIwMDAsMjAwMCwyMDAwLDIwMDAsMjAwMCwyMDAwLDIwMDAsMjAwMCwyMDAwLDIwMDAsMjAwMCwyMDAwLDIwMDAsMjAwMCwyMDAwLDIwMDAsMjAwMCwyMDAwLDIwMDAsMjAwMCwyMDAwLDIwMDAsMjAwMCwyMDAwLDIwMDAsMjAwMCwyMDAwLDIwMDAsMjAwMCwyMDAwLDIwMDAsMjAwMCwyMDAwLDIwMDAsMjAwMCwyMDAwLDIwMDAsMjAwMCwyMDAwLDIwMDAsMjAwMCwyMDAwLDIwMDAsMjAwMCwyMDAwLDIwMDAsMjAwMCwyMDAwLDIwMDAsMjAwMCwyMDAwLDIwMDAsMjAwMCwyMDAwLDIwMDAsMjAwMCwyMDAwLDIwMDAsMjAwMCwyMDAwLDIwMDAsMjAwMCwyMDAwLDIwMDAsMjAwMCwyMDAwLDIwMDAsMjAwMCwyMDAwLDIwMDAsMjAwMCwyMDAwLDIwMDAsMjAwMCwyMDAwLDIwMDAsMjAwMCwyMDAwLDIwMDAsMjAwMCwyMDAwLDIwMDAsMjAwMCwyMDAwLDIwMDAsMjAwMCwyMDAwLDIwMDBdLCJvcHMiOjIwMDB9LHsibmFtZSI6IlRyYW5zZm9ybSBhIG1hcCBvZiBwcm9wcyBhbmQgdmFsdWVzIHRvIGFuIG9iamVjdCB1c2luZyBjbGFzc2ljIGZvciAiLCJjb2RlIjoiY29uc3QgbmV4dERhdGEgPSB7fTtcbmZvciAobGV0IGkgPSAwOyBpIDwgZGF0YS5sZW5ndGg7IGkrKykge1xuICBuZXh0RGF0YVtkYXRhW2ldLnByb3BdID0gZGF0YVtpXS52YWx1ZTtcbn0iLCJydW5zIjpbMTUwMCwxNTAwLDE1MDAsNDE2Niw1MTY2LDQ4MzMsMTUwMCwxNTAwLDE1MDAsMTUwMCw0MzMzLDIxNjYsMTUwMCwxNTAwLDcxNjYsMTUwMCw1NjY2LDIxNjYsMTUwMCwyMzMzLDE1MDAsMTY2Niw0MDAwLDE1MDAsMTY2Niw0NTAwLDE1MDAsMTUwMCw1NTAwLDE1MDAsMTUwMCwxNTAwLDQxNjYsMTUwMCwxNTAwLDUzMzMsMTUwMCwxNTAwLDMzMzMsMTgzMywyODMzLDM2NjYsNDE2NiwyODMzLDU2NjYsMTgzMywyNjY2LDE1MDAsMTUwMCwzNTAwLDMxNjYsNDgzMywxODMzLDE1MDAsMzgzMywxNTAwLDE1MDAsNDMzMywxNTAwLDE1MDAsMTUwMCwxNTAwLDQzMzMsNTAwMCwxNTAwLDM1MDAsMTUwMCwxNTAwLDIxNjYsMTUwMCwxNTAwLDMwMDAsMTUwMCwxNTAwLDE4MzMsMjY2NiwzODMzLDE1MDAsMTUwMCwzMzMzLDE1MDAsNTY2NiwxNTAwLDU2NjYsMTUwMCw0ODMzLDQ4MzMsMTUwMCw1MDAwLDE1MDAsMzMzMywzMDAwLDE1MDAsNDE2Niw1NjY2LDE1MDAsNjAwMCwxNTAwLDM4MzMsMTUwMF0sIm9wcyI6MjcwM31dLCJ1cGRhdGVkIjoiMjAyMC0wNi0xN1QxMzo1NjowNi44OTRaIn0%3D}
* {@link https://url2.cl/UdDz9}
*/
const data = [...Array(1000).keys()].map((prop) => ({
prop,
value: Math.random(),
}));
// case 1
const nextData = data.reduce((nextData, { prop, value }) => {
nextData[prop] = value;
return nextData;
}, {});
// case 1
const nextData = {};
for (let { prop, value } of data) {
nextData[prop] = value;
}
// case 1
const nextData = {};
for (let i = 0; i < data.length; i++) {
nextData[data[i].prop] = data[i].value;
}
@UpperCod
Copy link
Author

UpperCod commented Jun 17, 2020

This block of code is just to recreate the test, tests performed:

  1. perf.link @UpperCod
  2. esbench @cristianbote

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment