¿Hay una manera simple en javascript de tomar una matriz plana y convertirla en un objeto con los miembros pares indexados como propiedades y miembros con índice impar como valores correspondientes (análoga a Ruby's Hash[*array]
)?Convertir matriz plana [k1, v1, k2, v2] al objeto {k1: v1, k2: v2} en JavaScript?
Por ejemplo, si tengo esto:
[ 'a', 'b', 'c', 'd', 'e', 'f' ]
entonces yo quiero esto:
{ 'a': 'b', 'c': 'd', 'e': 'f' }
El mejor que he encontrado hasta el momento parece más detallado de lo que tiene que ser:
var arr = [ 'a', 'b', 'c', 'd', 'e', 'f' ];
var obj = {};
for (var i = 0, len = arr.length; i < len; i += 2) {
obj[arr[i]] = arr[i + 1];
}
// obj => { 'a': 'b', 'c': 'd', 'e': 'f' }
¿Hay alguna manera mejor, menos detallada o más elegante de hacer esto? (¿O acabo de programar en ruby demasiado últimamente?)
Estoy buscando una respuesta en Javascript de vanilla, pero también estaría interesado si hay una manera mejor de hacerlo si se usa undercore.js
o jQuery
. El rendimiento no es realmente una preocupación.
Usted puede crear su propia función, entonces es bastante corta: 'var obj = transformar (arr); ';) –
Eso me parece bastante conciso. – ChaosPandion
Lo tienes bien. El ciclo que proporcionó es la forma correcta de hacerlo. –