I have following code and I was wondering, if that could be solved better? The objective is to move an item within an object up / down.
moveTab = (action, tab) => event => {
event.stopPropagation();
let order = { ...this.state.settings.layout }
let sorted = false;
let sortedArray = Object.keys(order).sort((a, b) => {
if (!sorted && ((action === 'up' && b === tab) || (action === 'down' && a === tab))) {
sorted = true;
return 1;
}
return 0;
});
let sortedObject = {}
sortedArray.map(key => sortedObject[key] = order[key]);
console.log(order);
console.log(sortedObject);
// ... more code ...
}