2016-04-14 11 views
0

の「連想配列の配列」に私は、配列内の文字列の束を持っている...私はjQueryのに別の愚かなことをやろうとしているjQueryの

を配列に変換します

[ var1 , var2 , var3 , var4 , var5 , var6 , var7 , ...]

そして、私は(理由のxD私に聞かないでください)...配列が同じインデックスを使用して、毎回「連想配列の配列」になりたい:

[ { 'variable' : var1 } , { 'variable' : var2 } , { 'variable' : var3 } , ... ]

インデックス「変数」は毎回同じです。

どうすればよいですか? assarrayが配列でないので、私の試みは(下)基本的には...

var stringarray = ['var1', 'var2', 'var3', 'var4']; 
 
var assarray = {}; 
 

 
$.each(stringarray, function(index, value) { 
 

 
    assarray[index] = { 
 
    'variable': value 
 
    }; 
 

 
}); 
 
document.write(JSON.stringify(assarray))
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

+0

何が問題なのですか?それはうまくいくようです。 'assarray'に配列(' [] ')の代わりにオブジェクト(' {} ')を使用したのはなぜですか? jQueryを使わなくても同じことができます: 'stringarray.map(function(a){return {" variable ":a};})'。 – Xufox

+0

jQuery以外のES6: 'var out = arr.map(el =>(variable:el))' ... – Andy

+0

しかし、 'var assarray = {}'は 'var assarray = [] 'と答えました。 – Andy

答えて

3

が機能していません。

var assarray = []; 

また、あなたができる:ええ、

var assarray = $.map(stringarray, function(val){ return {variable:val};}); 
+0

ありがとう!それが機能するように管理されています。しかし、私が解析しようとしていた配列は、BSOD、LOLを与えた100,000以上のエントリを持っています。私は別の解決策を見つけなければならないだろうと思う... :-P –

0

を間違いなくmapを使用することはする必要があります。しかし、私はちょうどES5以来、ビルトインを使用して使用したい:

var assarray = stringarray.map(function(element){ 
    return { variable: element }; 
}); 

docs hereをチェックしてください。 IE9以降、すべてのブラウザで動作するはずです。

+0

彼は既にjQueryを持っている。 – bknights

+0

ここに必ずしも同意しないわけではありませんが、非jqueryバージョンは一般的にはよりエレガントで、あなたができることを感じてください:) –

関連する問題