Вы можете использовать простую функцию для инвертирования ключей и значений, она будет работать и с массивами, поскольку она преобразует числовые целочисленные строки в числа. Код небольшой, простой и многократно используемый для этого и других случаев использования.
var objInvert = function (obj) {
var invert = {}
for (var i in obj) {
if (i.match(/^\d+$/)) i = parseInt(i,10)
invert[obj[i]] = i
}
return invert
}
var musicStyles = Object.freeze(objInvert(['ROCK', 'SURF', 'METAL',
'BOSSA-NOVA','POP','INDIE']))
console.log(musicStyles)
нашел ответ на этот вопрос : Как мне получить первый день предыдущей недели из объекта даты в JavaScript?