Düz bir dizi almak ve karşılık gelen değerler (Ruby'nin Hash[*array]
için analgous) olarak tekdüze endeksli üyeleri olarak dizinin çift dizinli üyeleri ile bir nesneye dönüştürmek için javascript basit bir yolu var mı? Bunu alabilir ÖrneğinDüz diziyi [k1, v1, k2, v2] nesnesine {k1: v1, k2: v2} nesnelerine dönüştürün.
:
şimdiye kadar ile geldim iyi olması gerekenden daha ayrıntılı görünüyor{ 'a': 'b', 'c': 'd', 'e': 'f' }
: Sonra
[ 'a', 'b', 'c', 'd', 'e', 'f' ]
Şunu istiyorum:
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' }
Bunu yapmak için daha iyi, daha az ayrıntılı veya daha zarif bir yol var mı? (Ya da sadece son zamanlarda yakutta programlama yaptık mı?)
Vanilla javascript'te bir cevap arıyorum, ancak undercore.js
veya jQuery
kullanıyorsa bunu yapmanın daha iyi bir yolu varsa da ilgilenirim. Performans gerçekten bir endişe değil.
Kendi fonksiyonunu oluşturabilir ve ardından oldukça kısadır: 'var obj = dönüşümü (arr); ';) –
Bu benim için biraz özlü görünüyor. – ChaosPandion
Doğru var. Sağladığınız döngü, bunu yapmak için doğru yoldur. –