Test name | Executions per second |
---|---|
for...of | 4841.6 Ops/sec |
reduce spread | 22.7 Ops/sec |
reduce mutate | 5061.4 Ops/sec |
object.fromEntries ...map | 2513.5 Ops/sec |
<script src='https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.5/lodash.min.js'></script>
function getItems(count) {
let id = 1;
return _.times(count, () => ({
name: "city" + id++,
visited: true
}))
}
var items = getItems(1000)
const result = {};
for(let item of items) {
result[item.name] = item.visited;
}
let initial = {};
const result = items.reduce((accumulator, item) => ({
accumulator,
[item.name]: item.visited
}), initial);
let initial = {};
const result = items.reduce((accumulator, item) => {
accumulator[item.name] = item.visited;
return accumulator;
}, initial);
let result = Object.fromEntries(
items.map(({ name, visited }) => [name, visited])
);