javascriptでは、フラットな配列をとり、配列の偶数インデックスメンバーをプロパティとして持ち、奇数インデックスメンバーを対応する値(ルビーのHash[*array]
に類似)としてオブジェクトに変換する簡単な方法はありますか?例えばフラットアレイ[k1、v1、k2、v2]をJavaScriptのオブジェクト{k1:v1、k2:v2}に変換しますか?
、私はこれがある場合:
[ 'a', 'b', 'c', 'd', 'e', 'f' ]
をそれから私はこれ欲しい:
{ 'a': 'b', 'c': 'd', 'e': 'f' }
を私が思い付くした最高のは、これまでのところ、それがなければならないよりも、より冗長なようです。
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' }
これを行うには、より優れた、あまり控えめな、またはよりエレガントな方法がありますか? (または最近ルビーでプログラミングしているだけですか?)
私は、vanilla javascriptで答えを探していますが、undercore.js
またはjQuery
を使用している場合は、これを行うより良い方法がある場合にも興味があります。パフォーマンスは本当に問題ではありません。
をあなた自身の関数を作成することができ、それは非常に短いです: 'VAR OBJ =変換(ARR ); ';) –
それは私にとってはむしろ簡潔に思えます。 – ChaosPandion
あなたは正しいです。あなたが提供したループは正しい方法です。 –